![]() |
Konsole: Read wann zu Ende?
Ich hab mir vorhin gedacht: Hey, es wäre doch praktisch, ein Programm zu haben, das die Ausgabe eines Konsolenprogramms (in meinem Fall mysqldump) in die Zwischenablage kopiert.
Folgenden Code hab ich dafür geschrieben:
Delphi-Quellcode:
Ich führe dann z.B. den Befehl
var
s, fulls: String; Clipboard: TClipboard; begin fulls := ''; s := ''; repeat fulls := fulls + #13#10 + s; ReadLn(s); until //bis wohin?? Clipboard := TClipBoard.Create; Clipboard.SetTextBuf(@fulls[1]); Clipboard.Free; end.
Code:
] (cmd2clip ist der Name meines Programms) aus. Das Problem ist jetzt, dass ich nicht weiß, wann die Ausgabe zu Ende ist. Gibt es irgendein Zeichen am Ende der Ausgabe oder so etwas?
mysqldump --user=root -A | cmd2clip
|
Hoi,
ist jetzt nicht die Lösung für dein Prob aber schau dir ![]() Du känntest das ganze auch mit
Code:
in eine Datei umleiten und dann auslesen.
> C:\cmd.txt
|
So, Problem gelöst. Hätt ich eigentlich früher drauf kommen können
Ich hatte anscheinenend vergessen, dass die Standardein- und ausgabe eigentlich (zumindest in Pascal) nicht groß was anderes wie eine Textdatei ist. Und da gibts ja neben den schönen Read und Write-Funktionen natürlich auch das eof, und damit hats dann geklappt. So sieht das ganze aus. Wenn einer also ein Konsolenprogramm braucht, mit dem die Eingabe in die Zwischenablage kopiert werden soll, einfach folgenden Source kompilieren und fertig:
Delphi-Quellcode:
program Cmd2Clip;
{$APPTYPE CONSOLE} uses clipbrd; var s, fulls: String; Clipboard: TClipboard; begin fulls := ''; s := ''; while not eof do begin ReadLn(s); fulls := fulls + #13#10 + s; end; Clipboard := TClipBoard.Create; Clipboard.SetTextBuf(@fulls[1]); Clipboard.Free; end. Edit: Acch Schmarrn, wenn ich aus ner repeat-Schleife eine while-Schleife mache, dann könnt ich den Code doch auch etwas ändern :wink: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 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 by Thomas Breitkreuz