AW: Textinhalt aufsplitten
Ohne Gewähr, da aus dem Kopf getippt:
Delphi-Quellcode:
procedure VerteileStrings(Quelle, Ziel1, Ziel2: TStrings);
var List: TStringlist; i: integer; begin Assert(Assigned(Quelle) and Assigned(Ziel1) and Assigned(Ziel2)); Ziel1.BeginUpdate; try Ziel1.Clear; Ziel2.BeginUpdate; try Ziel2.Clear; List := TStringlist.Create; List.Delimiter := ';'; try for i := 0 to Quelle.Count - 1 do begin List.DelimitedText := Quelle[i]; if List.Count > 0 then Ziel1.Add(List[0]); if List.Count > 1 then Ziel2.Add(List[1]); end; finally List.Free; end; finally Ziel2.EndUpdate; end; finally Ziel1.EndUpdate; end; end; |
AW: Textinhalt aufsplitten
Danke dir DeddyH, muss ich nur schauen ob ich es anpassen kann irgendwie. derzeit klappts noch nicht. Das nach langem echt mal wieder eine herrausforderung ;)
Weitere tips sind willkommen hier :) MfG |
AW: Textinhalt aufsplitten
Wie rufst Du es denn auf? Eigentlich sollte es klappen (gut, ich bin auch nicht fehlerfrei, aber so auf Anhieb kann ich nicht erkennen, was da nicht funktionieren sollte).
|
AW: Textinhalt aufsplitten
Also ganz normal öffne ich eine Textdatei:
Code:
und auf klick von der Listbox bei den einträgen fügt sich das ganze in die 2 und 3 listbox ein.
procedure TForm1.SpeedButton3Click(Sender: TObject);
var DateiName: TFileName; begin if OpenDialog1.Execute then begin ListBox1.Clear; DateiName := (OpenDialog1.Filename); ListBox1.Items.LoadFromFile(DateiName); end; end;
Code:
procedure TForm1.ListBox1Click(Sender: TObject);
begin for i := 0 to ListBox1.Items.Count -1 do begin if ListBox1.Selected[i] then Edit1.Text := ListBox1.Items.Strings[i]; ListBox2.Items.Strings[0] := Copy(Edit1.Text,1, (pos(';',Edit1.Text))-1); ListBox3.Items.Strings[0] := Copy(Edit1.Text,pos(';',Edit1.Text)+1,length(Edit1.Text)); end; end; Im endefekt soll es dich jedoch schon beim offnen der datei gleich auf die listbox2 und 3 verteilen, somit spare ich mir dann die listbox1. MfG |
AW: Textinhalt aufsplitten
Wenn Du statt des Semicolons = als Trenner verwendest könntest Du Dir einiges sparen mit
Delphi-Quellcode:
ValueListEditor1.Strings.LoadFromFile('C:\temp\fff.txt');
|
AW: Textinhalt aufsplitten
Delphi-Quellcode:
Das sollte doch auch funktionieren, ohne die Struktur der Datei ändern zu müssen.
procedure TForm1.SpeedButton3Click(Sender: TObject);
var DateiName: TFileName; List: TStringlist; begin if OpenDialog1.Execute then begin List := TStringlist.Create; try List.LoadFromFile(OpenDialog1.Filename); VerteileStrings(List, ListBox2.Items, ListBox3.Items); finally List.Free; end; end; end; |
AW: Textinhalt aufsplitten
Liste der Anhänge anzeigen (Anzahl: 1)
@ Bummi:
Auch dir danke ich werde es mir auch mal mit anschauen. Aber die struktur wollte ich im moment erstmal beibehalten. Danke DeddyH! Klappt wunderbar, ... aber leider schneidet er alles nach einem Leerzeichen ab siehe Screenshot. MfG |
AW: Textinhalt aufsplitten
Das Problem ist bekannt. In neueren Delphi-Versionen gibt es dafür StrictDelimiter, in Delphi 7 leider noch nicht. Da muss man sich dann mit schmutzigen Tricks behelfen.
[edit] Geänderte Version, wieder ungetestet:
Delphi-Quellcode:
[/edit]
procedure VerteileStrings(Quelle, Ziel1, Ziel2: TStrings);
var List: TStringlist; i: integer; begin Assert(Assigned(Quelle) and Assigned(Ziel1) and Assigned(Ziel2)); Ziel1.BeginUpdate; try Ziel1.Clear; Ziel2.BeginUpdate; try Ziel2.Clear; List := TStringlist.Create; List.Delimiter := ';'; try for i := 0 to Quelle.Count - 1 do begin List.DelimitedText := StringReplace(Quelle[i], ' ', #255, [rfReplaceAll]); if List.Count > 0 then Ziel1.Add(StringReplace(List[0], #255, ' ', [rfReplaceAll])); if List.Count > 1 then Ziel2.Add(StringReplace(List[1], #255, ' ', [rfReplaceAll])); end; finally List.Free; end; finally Ziel2.EndUpdate; end; finally Ziel1.EndUpdate; end; end; |
AW: Textinhalt aufsplitten
Na das ist doch mal perfekt... VIELEN Herzlichen DANK auch. So funktioniert die Splittung perfekt und sogar Kommas werden mit angezeigt ;)
MfG PS. Damit kann ich nun wieder weiterarbeiten und dementsprechend texte ändern und dann von der 3 listbox mit kommas abspeichern :) |
AW: Textinhalt aufsplitten
Hey Ihr helfer, brauche nochma eure hilfe :)
soweit hat ja nun alles geklappt... nun meine frage am rande... wie speichere ich wenn ich änderungen durchführe eigentlich wieder in die datei hinnein? :) MfG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz