Announcement

Collapse
No announcement yet.

Kommandozeilenprogramme, einzelne Zeichen lesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Kommandozeilenprogramme, einzelne Zeichen lesen

    Hallo,

    für ein Kommandozeilentool würde ich gerne einzelne Zeichen einlesen können. Ich habe bisher aber nur readln/writeln zur Ein- und Ausgabe gefunden, die zudem nicht völlig kompatibel zu sein scheinen, wenn man z.B. über ssh oder telnet auf einen Win2K-Rechner zugreift.

    Weiss jemand, wie ich einzelne Zeichen von der Tastatur bekomme (etwa wie keypressed in Turbo Pascal Zeiten) ?

    Grüße
    Timo

  • #2
    Hallo Timo<BR>
    Es gbit die procedure Read( [ var F: Text; ] V1 [, V2,...,Vn ] );<BR>
    Damit kann man einzelne Zeichen aus einem File oder Stream lesen<BR>
    Mit Write wird geschrieben.<BR>
    in der Delphi Hilfe für Read is ein gutes Bsp.<BR>

    procedure LeseDatei;<BR>
    var<BR>
    F1, F2: TextFile;<BR>
    Ch: Char;<BR>
    begin<BR>
    if OpenDialog1.Execute then begin<BR>
    AssignFile(F1, OpenDialog1.Filename);<BR>
    Reset(F1);<BR>
    if SaveDialog1.Execute then begin<BR>
    AssignFile(F2, SaveDialog1.Filename);<BR>
    Rewrite(F2);<BR>
    while not Eof(F1) do<BR>
    begin<BR>
    Read(F1, Ch);<BR>
    Write(F2, Ch);<BR>
    end;<BR>
    CloseFile(F2);<BR>
    end;<BR>
    CloseFile(F1);<BR>
    end;<BR>
    end;<BR>

    Gruß<BR>
    Matthias<BR&gt

    Comment


    • #3
      Hallo,

      das bringt natürlich keinen Erfolg. Die ReadLn-Funktion (und auch die Read) geben nämlich erst Zeichen zurück, sobald eine Zeile abgeschlossen ist.

      Inzwischen bin ich auf den Trichter gekommen, einfach die Console-API von Windows zu benutzen.

      Mir ist allerdings aufgefallen, das die meisten Leute, die Beispiele dazu bringen, auf den Fehler reinfallen STDIN/STDOUT zu nehmen, was bei umgeleiteten Programmen (Telnetserver etc.) dazu führt, das die Programme garnichts bekommen.

      Grüße
      Tim

      Comment

      Working...
      X