![]() |
String, TStrings, TStringlist Typenkonflikte
Ich habe folgenden Code:
Delphi-Quellcode:
Nun bekomm' ich in überall 'nen Typenkonflikt angezeigt. Gibt es kein StrToStrings o.ä.?
Text1 := TStringList.Create;
Text2 := TStringList.Create; ... SpaltenCBX.Items.Delimiter := ';'; text1.addstrings(SpaltenCBX.Items.DelimitedText + ';' + #13); ... text1.addstrings(Text1 + 'Mittelwert;'); text2 := 'Standardabw.;'; ... z:= foo; Text1.addstrings(Text1 + floattostr(z) + ';'); y:= foo_anders; Text2.addstrings( Text2 + floattostr(y) + ';'); end; Text1.addstrings(Text1 + #13 + Text2 + #13); Text2.addstrings('') end; |
Re: String, TStrings, TStringlist Typenkonflikte
Vergiss deine Denkweise, dass die einzelnen Strings getrennt mit Strichpunkt hinzugefügt werden müssen !
Einzelne Elemente werden mit der Methode .Add hinzugefügt. Bestehenden TStrings-Objekte werden mit .AddStrings angehängt.
Delphi-Quellcode:
Text1 := TStringList.Create;
Text2 := TStringList.Create; ... text1.addstrings(SpaltenCBX.Items); ... text1.Add('Mittelwert'); text2.Add('Standardabw.'); ... z:= foo; Text1.Add(floattostr(z)); y:= foo_anders; Text2.Add(floattostr(y)); |
Re: String, TStrings, TStringlist Typenkonflikte
Zitat:
Außerdem benutze ich:
Delphi-Quellcode:
in einer Schleife. Z wird berechnet, z wird zur Berechnung von y gebraucht. Aber die Ergebnisse von z und y sollen in verschiedene Zeilen. Ich bhabe mehrere Ergebnisse von z/y pro Zeile
z:= foo;
Text1.addstrings(Text1 + floattostr(z) + ';'); y:= foo_anders; Text2.addstrings( Text2 + floattostr(y) + ';'); Text1.addstrings(Text1 + #13 + Text2 + #13); Text2.addstrings('') Das ganze sieht so komisch aus, weil ich bisher das ganz in eine Label.Caption ausgegeben habe und das Ganze jetzt direkt in eine Datei schreiben will |
Re: String, TStrings, TStringlist Typenkonflikte
Hallo,
Hier verwendest du doch auch AddStrings um einen String anzuhängen. Für Strings nimmst du Add und um TStrings anzuhängen nimmst du AddStrings. Bei Zeilenumbrüchen
Delphi-Quellcode:
erzeugst du 2 Zeilen in der Stringliste. Eine mit Text1 und eine mit Text2.
Text1.Add(Text1 + #10#13 + Text2);
grüße, daniel |
Re: String, TStrings, TStringlist Typenkonflikte
Zitat:
Delphi-Quellcode:
Stringobj.Add(''); // leere Zeile anhängen
Zitat:
Delphi-Quellcode:
Aus Performancegründen enpfiehlt es sich, eine Zeile komplett in einer Zwischenvariable aufzubauen
var
s : string; // Hilfsvariable ... s := StringObj[StringObj.Count-1]; // Wert der letzten Zeile auslesen s := s + ....; // Zeile verlängern StringObj[StringObj.Count-1] := s; // verlängerte Zeile zurückschreiben und dann mit .Add anzuhängen. |
Re: String, TStrings, TStringlist Typenkonflikte
Zitat:
Delphi-Quellcode:
Da muß aber noch irgendwo und -wie mein TString rein.
AssignFile(T, SaveDialog1.FileName); { Datei ausgewählt }
Filemode:=fmOpenWrite; ReWrite(T); Reset(T); CloseFile(T); |
Re: String, TStrings, TStringlist Typenkonflikte
Die gesamte Liste kannst du doch mit
Delphi-Quellcode:
in eine Datei speichern.
Text1.SaveToFile(SaveDialog1.FileName);
|
Re: String, TStrings, TStringlist Typenkonflikte
Zitat:
Doch jetzt sehe ich, das alle Werte in jeweils einer eigenen Zeile Stehen. Kann ich denn einem TString was anhängen, ohne das es in eine neue Zeile kommt? |
Re: String, TStrings, TStringlist Typenkonflikte
Da musste dir nur nochmal shmias Code angucken, das ist genau das was du meinst.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 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