![]() |
"gelöst"clipboard als txt datei abspeichern
Guten Nabend :-D
Ich komme mal sofort zum punkt. Und zwar möcht ich den text aus dem clipboard als txt datei abspeichern,wo aber gefprüft wird ob der eintrag schon drin steht.und wenn ja zur nächsten zeile spring und dort weiter schreibt bzw nicht den 1 eintrag überschreibt. Habe hier auf dieser seite ![]() Leider bekomme ich beim compelieren ne fehler meldung. Könte jemand so net sein und mir unter die arme greifen bitte. Wo habe ich was an dieser stelle falsch gemacht?
Delphi-Quellcode:
begin
ClipboardTxtToFile(cliptext.txt); end Zitat:
Delphi-Quellcode:
Edit so habe es geschaft nun mit diesem Code exampel die zwischen ablage zu speichern,aber leider wird immer der erste eintrag wi der saveclipboard.txt überschrieben.
procedure TfrmMain12.Memo1Change(Sender: TObject);
begin showmessage(Clipboard.AsText); end; procedure TfrmMain12.Edit1Change(Sender: TObject); begin Memo1.Text := Clipboard.AsText; end; procedure TfrmMain12.Button1Click(Sender: TObject); function ClipboardTxtToFile (sFileTXT : string) : boolean; var ps1, ps2 : PChar; dwLen : DWord; tf : TextFile; hData : THandle; begin Result := False; with Clipboard do begin try Open; if(HasFormat(CF_TEXT)) then begin hData := GetClipboardData(CF_TEXT) ; ps1 := GlobalLock(hData) ; dwLen := GlobalSize(hData) ; ps2 := StrAlloc(1 + dwLen) ; StrLCopy( ps2, ps1, dwLen ) ; GlobalUnlock( hData ) ; AssignFile(tf, sFileTXT) ; ReWrite(tf) ; Write(tf, ps2) ; CloseFile(tf) ; StrDispose( ps2 ) ; Result := True; end; finally Close; end; end; end; begin ClipboardTxtToFile(cliptext.txt); end. Wie geht das nun das dieses nicht pasiert sonder delphi die datei halt öfnet und das schreiben fortsetz und nicht überschreibt?
Delphi-Quellcode:
So sollte die datei später aufgebaut sein.
var
slWork : TStringList; begin // Zwischenablage öffnen Clipboard.Open; try // Wenn kein Text enthalten ist, fertig if not Clipboard.HasFormat(CF_TEXT) then exit; // Der Einfachheit halber eine Stringliste zum Auslesen // dann lässt sich einfach SaveToFile benutzen slWork := TStringList.Create; try slWork.Text := Clipboard.AsText; slWork.SaveToFile('c:\temp\saveclipboard.txt'); finally FreeAndNil(slWork); end; finally Clipboard.Close; end; end;
Delphi-Quellcode:
Edit so nun habe es ich selber gelöst.
1 eintrag der zwischenablage
2 eintrag 3 eintrag
Delphi-Quellcode:
procedure TfrmMain12.Button1Click(Sender: TObject);
var slWork : TStringList; dir, log : string; begin // Zwischenablage öffnen Clipboard.Open; try // Wenn kein Text enthalten ist, fertig if not Clipboard.HasFormat(CF_TEXT) then exit; // Der Einfachheit halber eine Stringliste zum Auslesen // dann lässt sich einfach SaveToFile benutzen slWork := TStringList.Create; try slWork.Text := Clipboard.AsText; dir := ExtractFilePath(Application.Exename); log := Edit1.text;; AppendOrWriteTextToFile(dir + '\logfile.txt', log) finally FreeAndNil(slWork); end; finally Clipboard.Close; end; end; procedure TfrmMain12.Memo1Change(Sender: TObject); begin Button1.Click; end; end. |
Re: "gelöst"clipboard als txt datei abspeichern
Moin Emil,
erst speicherst du den Text aus der Zwischenablage in eine StringList und dann verwirfst du diese StringList, ohne ihren Inhalt an die Datei anzuhängen?
Delphi-Quellcode:
Freundliche Grüße
procedure FileAppend(fn: TFileName; s: TStream);
var mode: Word; begin if FileExists(fn) then mode := fmOpenWrite or fmShareDenyWrite else mode := fmCreate; with TFileStream.Create(fn, mode) do try Position := Size; CopyFrom(s, 0); finally Free; end; end; procedure TDemoForm.Button4Click(Sender: TObject); var s: TStream; begin with Clipboard do begin Open; try if Clipboard.HasFormat(CF_TEXT) then begin s := TStringStream.Create(AsText); try FileAppend(ExtractFilePath(ParamStr(0)), s); finally s.Free; end; end; finally Close; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:41 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