Bardzo Proszę o pomoc

0

Możeci mi powiedzieć dlaczego przy wykonywaniu poniższej procedury zapisywania do bufora program zapisuje tylko zawartość komponentu edit1 ??? Kiedy odczytuję bufor i zapisuję go do memo pojawia się tylko to z edit1 czyli od 1 do length(dane)... reszty nie ma dlaczego. Zaznaczam że długość edit1 nie może przekroczyć 35 znaków

procedure TForm1.Button7Click(Sender: TObject);
var
bufor:array[1..15000] of byte;
plik:file;
fname,dane:string;
i,bin, bin0:integer;
c:char;
begin
for i:=1 to 15000 do begin
bufor[i]:=0;
end;

dane:= edit1.text;
for i:=1 to length(dane) do
begin
c:= dane[i];
bin:=ord(c);
bufor[i]:=bin;
end;
dane:= edit2.Text;
for i:=36 to length(dane) do
begin
c:= dane[i];
bin:=ord(c);
bufor[i]:=bin;
end;
dane:= edit3.Text;
for i:=72 to length(dane) do
begin
c:= dane[i];
bin:=ord(c);
bufor[i]:=bin;
end;
itd.

Nie wiem o co chodzi i nie potrafie sobie z tym poradzić

Dzięki za pomoc

0

<font color="green">for i:=36 to length(dane) do
begin
c:= dane[i];
bin:=ord(c);
bufor[i]:=bin;
end;
dane:= edit3.Text;
for i:=72 to length(dane) do</span>

for i:=36 to length(dane) // to znaczy, że w Edit2 masz same spacje do 35-tej pozycji ?

for i:=72 to length(dane) // jak wyżej .. - sam zobacz

Poza tym, zamiast uzywania tylu zmiennych można od razu to zrobić

bufor[i]:= ord(dane[i]);

0

nie próbowałem kodu, ale myslę że rozwiązanie jest proste :)

   dane:= edit2.Text;
   for i:=36 to length(dane) do
   begin
   c:= dane[i];
   bin:=ord(c);
   bufor[i]:=bin;
   end;

powinno być tak:

for i:=36 to 35 + length(dane) do //widzisz w czym jest błąd :) w następnych pętlach analogicznie
begin
   c:= dane[i-35]; //tu też
   bin:=ord(c);
   bufor[i]:=bin;
end;

// dopisane, .. mnie wyprzedził
:)

0

faktcznie :) Dzieki za pomoc :-) Że też sam na to nie wpadłem :)
THX !!!

1 użytkowników online, w tym zalogowanych: 0, gości: 1