Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Leerzeilen in Tstringlist (https://www.delphipraxis.net/137861-leerzeilen-tstringlist.html)

hoika 30. Jul 2009 10:04

Re: Leerzeilen in Tstringlist
 
Hallo,

oder wie es so schön heisst

DRY

Don't repeat yourself


Heiko

gangs-taas 30. Jul 2009 10:19

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;

mkinzler 30. Jul 2009 10:23

Re: Leerzeilen in Tstringlist
 
Delphi-Quellcode:
  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;
BTW. Das mit den Umlauten in Variablennamen ninmt er so? :gruebel:

gangs-taas 30. Jul 2009 10:27

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;

nahpets 30. Jul 2009 10:36

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;

gangs-taas 30. Jul 2009 10:42

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 ...

DeddyH 30. Jul 2009 10:45

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;

gangs-taas 30. Jul 2009 10:51

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:

DeddyH 30. Jul 2009 10:53

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;

gangs-taas 30. Jul 2009 10:55

Re: Leerzeilen in Tstringlist
 
vielen dank


hehe doch mit break xD


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:41 Uhr.
Seite 2 von 3     12 3      

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