Re: Leerzeilen in Tstringlist
Hallo,
oder wie es so schön heisst DRY Don't repeat yourself Heiko |
Re: Leerzeilen in Tstringlist
oU man
ich bekomme das einfach nicht hin.... wieso geht das hier nicht ? ich hab sogar extra noch einmal in den Crashkurs delphi geguckt und alles aber es kommt nur mist raus
Delphi-Quellcode:
function TForm1.SpeicherHilfe(Var Memo: TMemo ; StringListe : TStringList): TStringList;
var I : Integer ; PrüfString : String; begin For i := 0 to (Memo.Lines.Count-1) do begin Prüfstring := Memo1.Lines[i]; if(Prüfstring = '') or (Prüfstring ='Serien Termine') then continue Else StringListe.Add(Memo.Lines[i]) ; end; end; procedure TForm1.SpeichernClick(Sender: TObject); var MoString, DiSTring, MiString, DoString, FrString, SaString, SoString :Tstringlist; begin MoString := Tstringlist.Create; DiSTring := Tstringlist.Create; MiString := Tstringlist.Create; DoString := Tstringlist.Create; FrString := Tstringlist.Create; SaString := Tstringlist.Create; SoString := Tstringlist.Create; MoString.Add('Montag'); DiString.Add('Dienstag'); MiString.Add('Mittwoch'); DoString.Add('Donnerstag'); FrString.Add('Freitag'); SaString.Add('Samstag'); SoString.Add('Sonntag'); MoString := SpeicherHilfe( Memo1, MoString); DiString := SpeicherHilfe( Memo2, DiString); MiString := SpeicherHilfe( Memo3, MiString); DoString := SpeicherHilfe( Memo4, DoString); FrString := SpeicherHilfe( Memo5, FrString); SaString := SpeicherHilfe( Memo6, SaString); SoString := SpeicherHilfe( Memo7, SoString); Zwischenspeicher.Text := MoString.Text; Zwischenspeicher.Add(trim(DiString.Text)); Zwischenspeicher.Add(trim(MiString.Text)); Zwischenspeicher.Add(trim(DoString.Text)); Zwischenspeicher.Add(trim(FrString.Text)); Zwischenspeicher.Add(trim(SaString.Text)); Zwischenspeicher.Add(trim(SoString.Text)); Zwischenspeicher.SaveToFile(Textdatei); end; |
Re: Leerzeilen in Tstringlist
Delphi-Quellcode:
BTW. Das mit den Umlauten in Variablennamen ninmt er so? :gruebel:
For i := 0 to Memo.Lines.Count-1 do
begin Prüfstring := Memo1.Lines[i]; if(Prüfstring <> '') and (Prüfstring <> 'Serien Termine') then StringListe.Add(Memo1.Lines[i]) ; end; |
Re: Leerzeilen in Tstringlist
ja das mit dne umlauten nimmst er
aber ich kanns ändern wenn es euch stört... wenn ich das alles so mach : bekommt meine Textdatei den Text : Sonntag Sonntag Sonntag Sonntag Sonntag Sonntag Sonntag aber warum ?
Delphi-Quellcode:
function TForm1.SpeicherHilfe(Var Memo: TMemo ; StringListe : TStringList): TStringList;
var I : Integer ; Pruefstring : String; begin For i := 0 to Memo.Lines.Count-1 do begin Pruefstring := Memo1.Lines[i]; if(Pruefstring <> '') and (Pruefstring <> 'Serien Termine') then StringListe.Add(Memo1.Lines[i]) ; end; end; procedure TForm1.SpeichernClick(Sender: TObject); var MoString, DiSTring, MiString, DoString, FrString, SaString, SoString :Tstringlist; begin MoString := Tstringlist.Create; DiSTring := Tstringlist.Create; MiString := Tstringlist.Create; DoString := Tstringlist.Create; FrString := Tstringlist.Create; SaString := Tstringlist.Create; SoString := Tstringlist.Create; MoString.Add('Montag'); DiString.Add('Dienstag'); MiString.Add('Mittwoch'); DoString.Add('Donnerstag'); FrString.Add('Freitag'); SaString.Add('Samstag'); SoString.Add('Sonntag'); MoString := SpeicherHilfe( Memo1, MoString); DiString := SpeicherHilfe( Memo2, DiString); MiString := SpeicherHilfe( Memo3, MiString); DoString := SpeicherHilfe( Memo4, DoString); FrString := SpeicherHilfe( Memo5, FrString); SaString := SpeicherHilfe( Memo6, SaString); SoString := SpeicherHilfe( Memo7, SoString); Zwischenspeicher.Text := MoString.Text; Zwischenspeicher.Add(trim(DiString.Text)); Zwischenspeicher.Add(trim(MiString.Text)); Zwischenspeicher.Add(trim(DoString.Text)); Zwischenspeicher.Add(trim(FrString.Text)); Zwischenspeicher.Add(trim(SaString.Text)); Zwischenspeicher.Add(trim(SoString.Text)); Zwischenspeicher.SaveToFile(Textdatei); end; |
Re: Leerzeilen in Tstringlist
Delphi-Quellcode:
function TForm1.SpeicherHilfe(Var Memo: TMemo ; StringListe : TStringList): TStringList;
var I : Integer ; Pruefstring : String; begin For i := 0 to Memo.Lines.Count-1 do begin --> Fehler!!! muss Memo heißen --> Pruefstring := Memo1.Lines[i]; if(Pruefstring <> '') and (Pruefstring <> 'Serien Termine') then --> Fehler!!! muss Memo heißen --> StringListe.Add(Memo1.Lines[i]) ; end; end; |
Re: Leerzeilen in Tstringlist
aber selbst wenn ich das so mach wie du sagst bekomme ihc trotzdem in der endgültigen Textdatei nur
sonntag sonntag sonntag ect. hab das jetzt soo
Delphi-Quellcode:
function TForm1.SpeicherHilfe(Var Memo: TMemo ; StringListe : TStringList): TStringList;
var I : Integer ; Pruefstring : String; begin For i := 0 to Memo.Lines.Count-1 do begin Pruefstring := Memo.Lines[i]; if(Pruefstring <> '') and (Pruefstring <> 'Serien Termine') then StringListe.Add(Memo.Lines[i]) ; end; end; Trotzdem nur sonntag ... |
Re: Leerzeilen in Tstringlist
Ich hab mal was stumpf heruntergetippt, schau mal, ob das so funktioniert.
Delphi-Quellcode:
procedure TForm1.SpeichernClick(Sender: TObject);
var sResult :Tstringlist; procedure StripLines(const Titel: string; const sLines: TStrings); const sIgnore = 'Serien Termine' var i : integer; begin sResult.Add(Titel); for i := 0 to sLines.Count - 1 do if (sLines[i] <> '') and (sLines[i] <> sIgnore) then sResult.Add(sLines[i]); end; begin sResult := TStringlist.Create; try StripLines('Montag', Memo1.Lines); StripLines('Dienstag', Memo2.Lines); StripLines('Mittwoch', Memo3.Lines); StripLines('Donnerstag', Memo4.Lines); StripLines('Freitag', Memo5.Lines); StripLines('Samstag', Memo6.Lines); StripLines('Sonntag', Memo7.Lines); sResult.SaveToFile(Textdatei); finally sResult.Free; end; end; |
Re: Leerzeilen in Tstringlist
es klappt
ist gibt nur eins was mich stört wenn ich irgendiwe test123 Serien Termine blub eingebeen habe sollte ja - so von der idee her - nur test123 gespeichert werden er speichert aber test123 blub ps. ich wusste garnicht, dass man inerhalbt von Procedures weitere procedures anlegen kann :oops: :oops: |
Re: Leerzeilen in Tstringlist
Dann hab ich das falsch verstanden. OK, dann müsste das so gehen:
Delphi-Quellcode:
procedure StripLines(const Titel: string; const sLines: TStrings);
const sIgnore = 'Serien Termine' var i : integer; begin sResult.Add(Titel); for i := 0 to sLines.Count - 1 do if (sLines[i] <> '') and (sLines[i] <> sIgnore) then sResult.Add(sLines[i]) else break; end; |
Re: Leerzeilen in Tstringlist
vielen dank
hehe doch mit break xD |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:41 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