Guten Nabend
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
http://delphi.about.com/cs/adptips20...ltip0301_4.htm nun ein code snipsel gefunden.
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:
[Fehler] main12.pas(193): Undefinierter Bezeichner: 'c'
[Fehler] main12.pas(193): Operator oder Semikolon fehlt
[Fehler] main12.pas(194): ';' erwartet, aber '.' gefunden
[Fehler] main12.pas(200): Deklaration erwartet, aber Dateiende gefunden
[Fataler Fehler] Auslesen.dpr(5): Verwendete
Unit 'main12.pas' kann nicht compiliert werden
Delphi-Quellcode:
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.
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.
Wie geht das nun das dieses nicht pasiert sonder delphi die datei halt öfnet und das schreiben fortsetz und nicht überschreibt?
Delphi-Quellcode:
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;
So sollte die datei später aufgebaut sein.
Delphi-Quellcode:
1 eintrag der zwischenablage
2 eintrag
3 eintrag
Edit so nun habe es ich selber gelöst.
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.