Tablica dynamiczna

KA
  • Rejestracja:około 21 lat
  • Ostatnio:około 4 lata
  • Postów:1652
0

Moj wczesniejszy temat zostal usuniety z niewiadomych powodow, wiec pytam jeszcze raz (chyba nie robie tym nic zlego:) ).

Kopiuj
var
  t: array of char;
  eg: TRegistry;
begin
  reg := TRegistry.Create;
  reg.RootKey := HKEY_CURRENT_USER;
  reg.OpenKey('\', true);
  SetLength(t, reg.GetDataSize('x'));
  reg.ReadBinaryData('x', t, sizeof(t));
  ShowMessage(pchar(t));
  reg.CloseKey;
  reg.Destroy;
end;

Dlaczego ten kod nie dziala??

nav
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Warszawa
0

podaj co ci kompilator wywala.


utf-8 rlz! ٩(ಥ_ಥ)۶
KA
  • Rejestracja:około 21 lat
  • Ostatnio:około 4 lata
  • Postów:1652
0

Kompilator nic nie wywala. W moim przypadku powinno mi sie wyswietlic "FFE", ale tak nie jest. Showmessage wyswietla puste okienko. Moze ja zle mysle, albo juz nie wiem co jest grane. HELP!!!

endrique
  • Rejestracja:około 21 lat
  • Ostatnio:około 4 lata
  • Lokalizacja:Kraków
0

cnie znam się zbytnio na rejestrach, ale <ort>sprubój</ort> morze sprawdzić wartość tego: reg.GetDataSize('x') czy przypadkiem nie jest 0. Jeśli nie to to ja bym jeszce pokombinował przy samym wyświetlaniu w Showmessage, może bez PChar?

Marmar
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 2 lata
  • Postów:317
0

ShowMessage(pchar(t));

To jest źle bo Showmessage pobiera jako argument stringa a nie pchara (zupelnie nie wiem dlaczego to sie kompiluje)

reg.ReadBinaryData('x', t, sizeof(t));

to tez jest źle bo sizeof(t) zawsze zwraca 4. Powinno byc length(t);

Pozdrawiam

aha i zamiast

reg.ReadBinaryData('x', t, sizeof(t));

powinno byc reg.ReadBinaryData('x', t[0], length(t));

t i t[0] to co innego wbrew niektorym błędnym wskazówkom ktore pojawiają sie na tym forum.

KA
  • Rejestracja:około 21 lat
  • Ostatnio:około 4 lata
  • Postów:1652
0

Pchar jest dobrze uzyty :) ale tego nie rozumiem o co chodzi z tym length, ale masz racje. t[0] zamiast t, Tez racja. Trzeba podac od ktorego argumentu ma zaczac przypisywac :)
Wielkie THX!!!

nav
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:Warszawa
0

ale tego nie rozumiem o co chodzi z tym length

length - zwraca dlugosc stringa/ tablicy

sizeof - zwraca rozmiar zajmowanej pamieci przez zmianna.


utf-8 rlz! ٩(ಥ_ಥ)۶

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.