Einzelnen Beitrag anzeigen

Triples

Registriert seit: 10. Aug 2005
Ort: NRW
22 Beiträge
 
#1

"gelöst"clipboard als txt datei abspeichern

  Alt 21. Jan 2008, 01:47
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.
  Mit Zitat antworten Zitat