![]() |
Umwandlung TStrings in Integer
Hallo!:hi:
Ich möchte gerne die Werte meiner StringList in Integerwerte umwandeln. Ich habees schon mit StrToInt versucht, aber da beschwert sich der Compiler "Incompatible types:'String' and 'TStrings'". Könnte mir bitte jemand helfen?! Danke Anna |
Re: Umwandlung TStrings in Integer
Wie gesagt du kannst eine Stringliste nicht in Integer wandeln, sondern nur die darin enthaltene Strings
Delphi-Quellcode:
for i := 0 to StringListe.ItemsCount -1 do
begin ... := StrToInt(StrngListe.Items[i]); end; |
Re: Umwandlung TStrings in Integer
Was bedeutet "items"?:gruebel: Denn der Compiler beschwert sich, dass es nich declariert wurde.
|
Re: Umwandlung TStrings in Integer
Zitat:
|
Re: Umwandlung TStrings in Integer
Zitat:
Delphi-Quellcode:
for i := 0 to StringListe.Count -1 do
begin ... := StrToInt(StringListe.Strings[i]); end; |
Re: Umwandlung TStrings in Integer
hab beides versucht.. aber keins funktioniert...
bei der zweiten möglichkeit beschwert er sich wieder, dass manString und TStrings nicht kombinieren kann... :pale: |
Re: Umwandlung TStrings in Integer
Vielleicht solltest uns jetzt ein wenig von dem Code zeigen der Probleme macht, sonst können wir nur noch raten, was du meinst.
|
Re: Umwandlung TStrings in Integer
Kannst Du Deine Versuche einmal in hinein stellen?
Grüße Klaus |
Re: Umwandlung TStrings in Integer
Delphi-Quellcode:
Das waren die dreiversuche, wobei keiner funktioniert hat... :cry:
rocedure TForm1.ffnen1Click(Sender: TObject);
var F: TStringList; i,j: Integer; begin if not opendialog1.execute then exit; F := TStringList.Create; try with StringGrid1 do begin F.LoadFromFile(OpenDialog1.FileName); RowCount := StrToInt(F[0]); // Zeilen ColCount := StrToInt(F[1]); // Spalten Edit1.Text := F[1]; Edit2.Text := F[0]; for i := 0 to (RowCount - 1) do // Zeilen M1 Rows[i].CommaText := StrtoInt F[i+2]; // 1.Versuch for j := 0 to F.itemsCount - 1 do begin rows[j]:= StrToInt(F.Items[j]); end; //2.Versuch for j := 0 to F.itemsCount - 1 do begin integerarray[j]:= StrToInt(F.Items[j]); end; //3.versuch for j := 0 to StringListe.Count -1 do begin rows[j] := StrToInt(F.Strings[j]); end; end; finally FrreAndNil(F); end; end; |
Re: Umwandlung TStrings in Integer
Delphi-Quellcode:
for j := 0 to StringListe.Count -1 do
begin integerarray[j := StrToInt(F.Strings[j]); end; |
Re: Umwandlung TStrings in Integer
Delphi-Quellcode:
for j := 0 to F.Count -1 do
begin integerarray[j] := StrToInt(F.Strings[j]); end; |
Re: Umwandlung TStrings in Integer
danke.. aber bei der cariante "invalid typecast".. was heiß das?bzw. was bedeutet das?
|
Re: Umwandlung TStrings in Integer
tipfehler.. sorry.. ich meinte "...bei der Variante kommt folgender fehler..."
|
Re: Umwandlung TStrings in Integer
Du musst bei dir bedenken: rows ist ein array-Property von TStrings. Du solltest dir überlegen, was du eigentlich machen willst. Willst du etwas in die Cells reinschreiben?
Zitat:
|
Re: Umwandlung TStrings in Integer
Ich möchte in die zellen Zahlen hineinschreiben, kann aber zur Zeit nur Strings hineinschreiben... Daher möchte ich diese Stringsin Integerwerte umwandeln...
|
Re: Umwandlung TStrings in Integer
In Stringgrids stehen grundsätzlich nur Strings, wie der Name schon sagt. In Integer musst du grundsätzlich nur bei der Weiterverarbeitung konvertieren.
|
Re: Umwandlung TStrings in Integer
Wie kannich sie beim Weiterkonvertieren umwandeln?
|
Re: Umwandlung TStrings in Integer
Ich fürchte, ich verstehe dich nicht ganz...
Wenn du zum Beispiel ein Integerarray brauchst, dass du mit den Daten aus der ersten Zeile des Grids füllen willst, dann verwendest du einfach eine for-Schleife:
Delphi-Quellcode:
for i:=0 to stringgrid.rows[0].count-1 do
integerarray[i]:=strtoint(stringgrid.rows[0][i]); |
Re: Umwandlung TStrings in Integer
Wie der Name schon sagt, in StringGrids gehören Strings.
Deine Zahlen die Du als Strings aus der Datei holst kannst Du direkt ohne Umwandlung in das StringGrid schreiben. Wenn Du mit den Zahlen rechnen willst, mußt Du sie in ein Zahlenformat umwandeln (Integer, Float). Grüße Klaus |
Re: Umwandlung TStrings in Integer
@Apollonius: also mir ist klar das in der stringlist alle werte strings sind. nun möchte ich aber, dass diese stringwerte in integerwerte umgewandelt werden, damit ich sie weiterverwenden kann. aber die variante mit dem integerarray funktioniert nicht.. zum einen verlangt er jedesmal runde statt eckigen klammern und zum anderen gibt er bei änderung von eckigen in runde Kalmmern die Fehler "Invalid typecast" aus.
@Klaus:undwie kann ich in ein zahlenformat umwandeln? |
Re: Umwandlung TStrings in Integer
Ohne Code kann ich das absolut nicht kommentieren.
|
Re: Umwandlung TStrings in Integer
auf seite eins steht der gesamte quelle code... und versuch 2 das mit dem integerarray...
|
Re: Umwandlung TStrings in Integer
Dein zweiter Versuch sollte so vom Syntax her korrekt sein:
Delphi-Quellcode:
Wie ist denn Dein IntegerArray definiert?
for j := 0 to F.Count - 1 do
begin integerarray[j]:= StrToInt(F.Strings[j]); end; String in Zahlenwert umwandeln -> StrToInt (wandelt String in Integer um) -> StrToFloat (wandelt String in ein Floatwert um) So schwer ist das doch nicht. Grüße Klaus |
Re: Umwandlung TStrings in Integer
Ich vermute mal ganz stark, dass integerarray nicht deklariert wurde.
Delphi-Quellcode:
var
integerarray: array of integer; begin SetLength(integerarray, F.ItemsCount); {..} for j := 0 to F.itemsCount - 1 do begin integerarray[j]:= StrToInt(F.Items[j]); end; {..} end; |
Re: Umwandlung TStrings in Integer
Hi
Ehm das Problem liegt ganz woanders.. du musst und darfst die Strings in deiner Liste gar nicht in Zahlen umwandeln! So muss das heißen:
Delphi-Quellcode:
Gruß
for j := 0 to F.itemsCount - 1 do
begin rows[j]:= SF.Items[j]; end; Neutral General |
Re: Umwandlung TStrings in Integer
@Neutral General: Was ist SF?
Items funktioniert nicht... ich habe die beiden Quelltexte (Neutral General,Dunkel) ausprobiert und jedesmal hat er ein Problem mit items... er sagt dazu "Undeclared identifier:'items'". Kann es daran liegen,dass ich Delphi 7 Personal benutze? |
Re: Umwandlung TStrings in Integer
Denk doch mal mit!
In einer TList heißt das nun mal Items. Bei TStrings muss es Strings heißen. |
Re: Umwandlung TStrings in Integer
Also, bei mir geht das hier:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var F: TStringList; integerarray: array of integer; i: integer; begin F := TStringList.Create; try F.Add('1'); F.Add('2'); F.Add('3'); F.Add('4'); F.Add('5'); F.Add('6'); F.Add('7'); F.Add('8'); F.Add('9'); F.Add('10'); SetLength(integerarray,F.Count); for i := 0 to F.Count - 1 do integerarray[i] := StrToInt(F[i]); for i := 0 to Length(integerarray) - 1 do ShowMessage(Format('%d hat den Wert %d',[i,integerarray[i]])); finally FreeAndNil(F); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz