Mam niby procedure do brania numeru ale jakos nie bardzo dziala (kosmiczne liczby). Robil takie cos ktos kiedys? 8-| dzieki za pomoc :)
Nigdy tego nie robiłem... spojrzałem na config.dat i od razu widać :|
Drajwer, opuszczasz się :]
Masz taki ciąg:
Number\0\1xxxx
\0 to oczywiście znak o kodzie 0
\1 zapewne oznacza, że po nim należy wczytać 1 DWORD
no i xxxx to właśnie ten DWORD, który po odczytaniu i konwersji na system dziesiętny da Twoją liczbę
to i ja wiem tylko ze mi kosmiczne liczby wychodza :(
Może czytasz po bajcie a nie jako dword? Wtedy musisz zamienić kolejność bajtów!
wiem ze musze nawet probowalem ale nic z tego nie wyszlo. moze jakis kodzik ? ;P
dobra poradzilem sobie, dzieki za wskazowki
ps. jak skoncze to sie podziele kodzikiem ;)
no jak byś mógł zarzucić kodzik, albo jak by ktoś mógł mi w skrócie to wytłumaczyć ..
a dziwną sprawą też jest to, że jak się wczytuje przez assignfile i readln to odczyta całą pierwszą linie z tego pliku, a jak już potrzebuję całość wczytać np. do memo to tylko cfg1 wyskakuje :|
PS sory za odkopanie tematu, ale uznałem ,że nie będę śmiecił..
bolq napisał(a)
a dziwną sprawą też jest to, że jak się wczytuje przez assignfile i readln to odczyta całą pierwszą linie z tego pliku, a jak już potrzebuję całość wczytać np. do memo to tylko cfg1 wyskakuje :|
U mnie i tak i tak wczytywało tylko cfg1 bo potem jest bajt chr(0) i dalej już nie powinno pokazywać ;P ale jak wczytywałem bajt po bajcie omijając te zerowe bajty to było dobrze ;)
może głupie pytanie ale jak to zrobić ? :|
Przykład:
procedure TForm1.Button1Click(Sender: TObject);
var
Plik: File of Char;
Znak: Char;
Linia: String;
begin
AssignFile(Plik,'config.dat');
Reset(Plik);
Repeat
Read(Plik,Znak);
If Znak <> Chr(0) then
Linia := Linia + Znak;
Until EOF(Plik);
CloseFile(Plik);
Memo1.Text := Linia;
end;
<delphi>
</delphi>
taki banał, ale chyba bym nie wpadł na to :) dzięki Ci stary wielkie [browar] dla Ciebie :)