Einzelnen Beitrag anzeigen

omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: mit Konsolenanwendung StdIn lesen

  Alt 16. Jan 2006, 14:33
Hallo VizeTE,

Zitat von VizeTE:
Zitat von omata:
Meinst du, wenn man das Programm einfach so aufruft?
Ja, das meinte ich. Kann man das Abfangen? D.h. irgendwie prüfen ob es überhaupt was zu lesen gibt?
nein!
Kann man nicht. Dein Programm weiss nichts von einer Datei.
Dein Programm horcht was auf StdIN so los ist und wird beendet wenn es dort das Endezeichen (#26) liest.

Wenn du keine Datei an dein Programm sendest, wird StdIN auf die Tastatur gelegt. Das liegt nunmal in der Natur der Sache, sorry.

Wenn du sowas abfangen willst, darfst du nicht StdIN nehmen, sondern musst den Dateinamen übergeben und die Datei selber einlesen. Das ist nunmal so!

Zitat von VizeTE:
Das einlesen von Umlauten macht mir noch ein wenig zu schaffen.
Tja, da ist dann die Frage wie erstellst du die Datei, die du an dein Programm übergibst?
Da es ja ein Konsolenprogramm ist, müstest du ja eigentlich z.B. das Programm Edit oder UltraEdit (und dann den Text konvertieren) nehmen.
Und zwar in ASCII, da Windows eine andere Zeichentabelle benutzt (ANSI).
Also Gegenfrage wie erstellst du deine Dateien, mit einem Windowsprogramm (z.B. Notepad)?
Dann kannst du mit...

Delphi-Quellcode:
function ANSI2ASCII(AText:string):string;
const MaxLength = 255;
var PText : PChar;
begin
  PText:=StrAlloc(MaxLength);
  StrPCopy(PText,AText);
  {$IFDEF WIN32}
  CharToOEM(PText,PText); {32Bit}
  {$ELSE}
  AnsiToOEM(PText,PText); {16Bit}
  {$ENDIF}
  Result:=StrPas(PText);
  StrDispose(PText);
end;
deinen Zeichen umwandeln, damit sie in deiner Anwendung richtig aussehen.

Ährlich gesagt habe ich keine Ahnung was du da eigentlich machen möchtest.

MfG
Thorsten
  Mit Zitat antworten Zitat