![]() |
Memo.Text Schleife
Hallo,
ich möchte hoffen, dass der Titel so in Ordnung ist? Also zum Thema! Wie ihr im Quelltext lesen könnt, wird ein Teil aus dem Memofeld als Dateiname zum speichern benutzt. Und zwar der Inhalt der nach ** kommt. Dieses geht auch soweit ganz gut! Jetzt zum Problem: Sind keine ** vorhanden, wird der ganze Inhalt vom Memofeld als Dateiname benutzt. Das ist schlecht! Würde gerne, wenn die ** fehlen einen Fixtext benutzen!
Delphi-Quellcode:
procedure TForm1.Timer3Timer(Sender: TObject);
var s, d: String; begin s := Memo1.Lines.Text; d := '**'; Delete(s, 1, Pos(d, s) - 1 + Length(d)); while Pos(#10, s) > 0 do Delete(s, Pos(#10, s), 1); while Pos(#13, s) > 0 do Delete(s, Pos(#13, s), 1); s := Trim(s); Memo1.Lines.SaveToFile(FormatDateTime('yyyy-mm-dd_hh-nn-ss__',now)+(s) + '.txt'); end; end; end; |
AW: Memo.Text Schleife
Delphi-Quellcode:
Edit:
if Pos(d, s) < 1 then begin;
//fixtext exit; end; in der procedure am start einbauen:
Delphi-Quellcode:
procedure TForm1.Timer3Timer(Sender: TObject);
var s, d: String; begin s := Memo1.Lines.Text; d := '**'; if Pos(d, s) < 1 then begin; //fixtext, selbst weiter bearbeiten exit; end; Delete(s, 1, Pos(d, s) - 1 + Length(d)); while Pos(#10, s) > 0 do Delete(s, Pos(#10, s), 1); while Pos(#13, s) > 0 do Delete(s, Pos(#13, s), 1); s := Trim(s); Memo1.Lines.SaveToFile(FormatDateTime('yyyy-mm-dd_hh-nn-ss__',now)+(s) + '.txt'); end; end; end; |
AW: Memo.Text Schleife
Alles klar ! :-D geht soweit!
Danke! |
AW: Memo.Text Schleife
Zitat:
Was soll diese Anhäufung von
Delphi-Quellcode:
?
end;
Kommt demnächst noch eine Frage weil Du das Speichern eines Memos durch einen Timer steuerst? Die Routine tut genau das was sie soll
Code:
Vielleicht solltest Du Dir ein paar Gedanken darüber wenn nicht alles so ist wie Du es gerne hättest, z.B. wenn dort nur ein * vorhanden ist oder nach ** keine weiteren Daten vorhanden sind.
Würde gerne eine kleine Information aus dem Memofeld,
mit an den Dateinamen hängen. Hier ein Beispiel: So würde der Inhalt im Memofeld aussehen: testeingabe1*testeingabe2*testeingabe3[COLOR="red"]**1245[/COLOR] Jetzt würde ich gerne immer die Zahl nach dem Sonderzeichen ** mit übernehmen! Und was verstehst du unter "Fixtext" und was willst Du mit Ihm erreichen? Gruß K-H Edith: Memo.Text Schleife ... Bahnhof, Kofferklauen |
AW: Memo.Text Schleife
Zitat:
Wie man aus deinem Quelltext entnehmen kann, hast du keine Probleme den Text aus einem TMemo auszulesen. Vielmehr geht es darum aus einem String eine Zeichenkette zu isolieren. Jetzt kannst du dir die Frage nach dem Titel (hoffentlich) auch selber beantworten |
AW: Memo.Text Schleife
Zitat:
|
AW: Memo.Text Schleife
Hallo,
habe noch eine Frage zu:
Delphi-Quellcode:
Möchte gerne die letzten 10 Zeichen mit in den Dateinamen nehmen!d := '**'; Und nich was nach ** kommt! Hat einer eine Idee? Hier der ganze Quelltext!
Delphi-Quellcode:
procedure TForm1.Timer3Timer(Sender: TObject);
var s, d: String; begin Memo3.Lines:=Memo1.Lines; Timer4.Enabled:=false; Progressbar1.Position := Progressbar1.Position -1; if Progressbar1.Position = 0 then begin s := Memo1.Lines.Text; d := '**'; while Pos(#10, s) > 0 do Delete(s, Pos(#10, s), 1); while Pos(#13, s) > 0 do Delete(s, Pos(#13, s), 1); if Pos(d, s) < 1 then begin Memo1.Lines.SaveToFile(FormatDateTime('yyyy-mm-dd_hh-nn-ss__',now)+('EOT')+ '.txt'); Memo1.Clear; FileListBox1.Update; Button4.Enabled:=false; Timer3.Enabled:=false; Timer1.Enabled:=true; sndPlaySound( nil , 0); exit; end; Delete(s, 1, Pos(d, s) - 1 + Length(d)); while Pos(#10, s) > 0 do Delete(s, Pos(#10, s), 1); while Pos(#13, s) > 0 do Delete(s, Pos(#13, s), 1); s := Trim(s); Memo1.Lines.SaveToFile(FormatDateTime('yyyy-mm-dd_hh-nn-ss__',now)+(s) + '.txt'); Filelistbox1.Update; Memo1.Clear; Button4.Enabled:=false; Timer3.Enabled:=false; Timer1.Enabled:=true; sndPlaySound( nil , 0); end; end; |
AW: Memo.Text Schleife
Delphi-Quellcode:
Könntest das ganze natürlich auch mit copy() machen...
var
i: integer; letztenzeichen: string; if length(memo1.text) < 11 then exit; letztenzeichen := ''; for i := length(memo1.text)-11 to length(memo1.text do begin; letztenzeichen := letztenzeichen + memo1.text[i]; end; //weiter.... |
AW: Memo.Text Schleife
Delphi-Quellcode:
function LastChars(const s: string; CountChars: Cardinal): string;
begin if CountChars >= Length(s) then Result := s else Result := Copy(s, Length(s) - Pred(CountChars), MAXINT); end; |
AW: Memo.Text Schleife
Vielleicht sollte man, solange der TE nicht beriet ist senen Threadtitel zu ändern, nicht mehr antworten. :gruebel:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:44 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