Thread View: pl.comp.lang.pascal
3 messages
3 total messages
Started by Winetou
Fri, 25 Sep 2009 17:34
Dynamiczne Tablice SetLength
Author: Winetou
Date: Fri, 25 Sep 2009 17:34
Date: Fri, 25 Sep 2009 17:34
39 lines
1988 bytes
1988 bytes
Witam,
Potrzebuję zamienić Stringa na tablicę Liczb Integer. Napisałem do tego
funkcję przy użyciu SetLength ale ciągle dostaję błąd w lazarusie
"Project raised exeption class 'Unknow'." oraz po kliknięciu przycisku
OK ładne okienko z kodem assemblera. Błąd otrzymuję w linii, w której
próbuję wpisać wartość do tabeli.
procedure TmainForm.StrToPoints(content: string; var values: TIntegerArray);
var
licz: Integer;
count: Integer;
temp: string;
begin
count := 0;
temp := '';
for licz := 0 to Length(content) - 1 do begin
if (content[licz] <> ' ') and (content[licz] <> ',') then temp :=
temp + content[licz]
else if (temp <> '') then begin
SetLength(values, count + 1);
values[count] := StrToInt(temp);
temp := '';
count := count + 1;
end;
end;
if (temp <> '') then begin
SetLength(values, count + 1);
values[count] := StrToInt(temp);
end;
end;
błąd wyskakuje w linii values[count] := StrToInt(temp); podczas
pierwszego jej wywołania.
Mógłby mi ktoś zasugerować gdzie popełniłem błąd ?
Pozdrawiam,
Łukasz W.
Re: Dynamiczne Tablice SetLength
Author: darekm
Date: Fri, 25 Sep 2009 19:45
Date: Fri, 25 Sep 2009 19:45
48 lines
2271 bytes
2271 bytes
Winetou pisze: > Witam, > > Potrzebuję zamienić Stringa na tablicę Liczb Integer. Napisałem do tego > funkcję przy użyciu SetLength ale ciągle dostaję błąd w lazarusie > "Project raised exeption class 'Unknow'." oraz po kliknięciu przycisku > OK ładne okienko z kodem assemblera. Błąd otrzymuję w linii, w której > próbuję wpisać wartość do tabeli. > > procedure TmainForm.StrToPoints(content: string; var values: > TIntegerArray); > var > licz: Integer; > count: Integer; > temp: string; > begin > count := 0; > temp := ''; > for licz := 0 to Length(content) - 1 do begin > if (content[licz] <> ' ') and (content[licz] <> ',') then temp := dlaczego startujesz od zera sprawdz co masz w content[0] > temp + content[licz] > else if (temp <> '') then begin > SetLength(values, count + 1); > values[count] := StrToInt(temp); > temp := ''; > count := count + 1; > end; > end; > if (temp <> '') then begin > SetLength(values, count + 1); > values[count] := StrToInt(temp); > end; > end; > > błąd wyskakuje w linii values[count] := StrToInt(temp); podczas > pierwszego jej wywołania. > > Mógłby mi ktoś zasugerować gdzie popełniłem błąd ? > > Pozdrawiam, > Łukasz W. -- Darek
Re: Dynamiczne Tablice SetLength
Author: Winetou
Date: Fri, 25 Sep 2009 20:46
Date: Fri, 25 Sep 2009 20:46
17 lines
1614 bytes
1614 bytes
> dlaczego startujesz od zera > sprawdz co masz w content[0] Faktycznie ... dopiero zaczynam w pascalu (po dłuższej przerwie poświęconej innym językom programowania) i jakoś nie przyszło mi to do głowy ... szczególnie że wrzuciłem kilka rzeczy do watch list w tym licznik z pętli i gdy wysypywała mi się pętla miał on wartość 0. Teraz rozumiem w czym był problem i gdzie był błąd ... siedziałem i dłubałem w tym tak długo, że pewno bym tego nie zauważył :) czasami przydaje się "świeże spojrzenie". Wielkie dzięki za pomoc :D wszystko fajno śmiga. Pozdrawiam, Łukasz W.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads