Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi mit Konsolenanwendung StdIn lesen (https://www.delphipraxis.net/60512-mit-konsolenanwendung-stdin-lesen.html)

VizeTE 16. Jan 2006 15:02

Re: mit Konsolenanwendung StdIn lesen
 
Zitat:

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

Das hatte ich ja schon mal im einführenden Post beschrieben. Auf meinem Rechner läuft ein Subversion-Server. Dieser Server hat ein "Hooks"-Verzeichnis. D.h. bei bestimmten Aktionen sieht der Server in dieses Verzeichnis ob dort bestimmte Dateien liegen. Liegt dort eine Datei dann führt er diese aus.
Genau so eine Datei möchte ich schreiben. (bzw. habe ich, funktioniert auch schon gut aber noch nicht perfekt)

Zitat:

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

Das klappt ja unter den Umständen nicht. Normalerweise schreibt der Server auch immer etwas in die StdIn. Keine Ahnung ob man sich da aber 100%ig darauf verlassen kann. Daher wollte ich mich gegen diesen Sonderfall absichern. Wenn das nicht klappt dann gehts halt nicht.
Habe auch schon mal über Threads nachgedacht. Vielleicht kann man das einlesen in einen Thread verlagern. Wenn dieser dann ein bestimmtes Timeout überschreitet wird der Thread einfach beendet. Keine Ahnung ob das so leicht geht.

Zu deinem Codeschnipsel...
Macht das echt einen Unterschied ob ich AnsiToOEM oder CharToOEM benutze? Ich hatte das nicht probiert da ich mal in meinem PSDK nachgeschaut hatte. Dort war AnsiToOEM als veraltet und durch CharToOEM zu ersetzen gekennzeichnet. Daher bin ich davon ausgegangen, daß beide Methoden das gleiche machen.

omata 16. Jan 2006 15:11

Re: mit Konsolenanwendung StdIn lesen
 
Zitat:

Zitat von VizeTE
Zu deinem Codeschnipsel...
Macht das echt einen Unterschied ob ich AnsiToOEM oder CharToOEM benutze?

Durch den Compilerschalter wird doch sowieso nur eine benutzt. Und das sollte jetzt immer CharToOEM sein. Mir ging es eigentlich mehr darum, wie du deine Dateien erstellst (DOS- oder Windows-Zeichensatz?) und deshalb der Hinweis darauf wann du wie umwandeln must.

MfG
Thorsten

VizeTE 16. Jan 2006 16:43

Re: mit Konsolenanwendung StdIn lesen
 
Zitat:

Zitat von omata
Mir ging es eigentlich mehr darum, wie du deine Dateien erstellst (DOS- oder Windows-Zeichensatz?) und deshalb der Hinweis darauf wann du wie umwandeln must.

Wie gesagt, ich erstelle die Daten ja gar nicht. Das macht ja der Subversion-Server. Mit CharToOEM wandelt er irgendetwas um. Leider aber nicht richtig. Da kommen die Umlaute auch nur als Müll raus. Zwar anderer Müll als ohne CharToOEM aber leider immernoch Müll.

Also müßte es ja noch eine andere Möglichkeit zum umwandeln geben?!

omata 16. Jan 2006 17:12

Re: mit Konsolenanwendung StdIn lesen
 
Ja, kannst du den nicht mal diese Datei, die du an dein Programm übergribst mit Notepad oder Edit aufmachen und dir die Sonderzeichen ansehen?

Dann wüsste man doch schon mehr.
Außerdem welche Zeichen den nun genau? Umlaute?

MfG
Thorsten

VizeTE 18. Jan 2006 14:50

Re: mit Konsolenanwendung StdIn lesen
 
Zitat:

Zitat von VizeTE
Wie gesagt, ich erstelle die Daten ja gar nicht. Das macht ja der Subversion-Server.

Zitat:

Zitat von VizeTE
Da kommen die Umlaute auch nur als Müll raus.



Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz