AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

noch'n BF Interpreter

Ein Thema von himitsu · begonnen am 24. Jan 2010 · letzter Beitrag vom 29. Jan 2010
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.387 Beiträge
 
Delphi 12 Athens
 
#1

Re: noch'n BF Interpreter

  Alt 25. Jan 2010, 08:14
Hab zwar noch keine Funktion gefunden, welche prüft, ob umgeleitet wurde, aber FlushConsoleInputBuffer funktioniert bei einer Datei nicht, also würden da auch keine Zeichen verloren gehn,
allerdings funktioniert ReadConsoleInput auch nicht und er ließt keine Zeichen ein = Endlosschleife.

Jedenfalls scheint dieses nun in beiden Fällen zu laufen.
Delphi-Quellcode:
var H: THandle;
  CI: TInputRecord;
  isRedirected: Boolean;
  i: Integer;
  C: Char;

begin
  // initialisieren
  H := GetStdHandle(STD_INPUT_HANDLE);
  isRedirected := not FlushConsoleInputBuffer(H);

  while true do begin

    // abfragen
    if isRedirected then begin
      if EOF then begin
        {dateiende erreicht}
        //C := #0;
        break;
      end else Read(C);
    end else begin
      CI.EventType := KEY_EVENT;
      repeat
      until ReadConsoleInput(H, CI, 1, Cardinal(i)) and (i = 1)
        and (CI.Event.KeyEvent.bKeyDown) and (CI.Event.KeyEvent.AsciiChar <> #0);
      C := CI.Event.KeyEvent.AsciiChar;
      FlushConsoleInputBuffer(H);
    end;

    write(C);
    sleep(50);

  end;
Hier wird mal mit Break abgebrochen, aber dem BF-Programm übergebe ich eine #0, welche dann das Dateiende signalisiert.

Allerdings dachte ich immer Read ließt nur das ein, welches man verlangt und ohne ein Enter zu fordern, so wie es auch bei einer Dateieingabe geschieht
und nur ReadLn verlangt das Enter.
Nja, hatte es aber auch noch nie so bei einer Konsoleneingabe verwendet.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:10 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