Seite 1 von 1
Console-Inhalt lesen und speichern
Verfasst: 19.01.2007 20:01
von RSBasic
Hallo Leute, ich hoffe es geht euch gut, denn ich habe wieder eine simple Frage für euch.
Ich programmiere gerade sone Console und möchte den Inhalt, was da mit Print[N]() wiedergegeben wurde, lesen und in einer Datei abspeichern.
Mein Problem ist aber, dass ich nicht umsetzen kann und außerdem habe ich in der PB-Hilfe, CAV, Google und im PB-Board nachgeschaut, aber leider nix gefunden.
Bitte helft mir, thx.
Verfasst: 19.01.2007 22:15
von Hyper
Hi RSBasic,
ich würde es anders machen:
Bevor Du PrintN machst, immer erst alles schön in eine LinkedList speichern, dann PrintN und anschließend kannst Du diese auch über einen Loop in eine Datei speichern.
Das geht viel schneller als aus der Console zu lesen und ist auch relativ einfach.
Re: Console-Inhalt lesen und speichern
Verfasst: 26.01.2010 03:20
von ahab
Hi,
dieses Thema ist zwar ein wenig alt, hab aber nichts anderes passendes gefunden. Ich möchte ebenfalls bereits in der Console ausgegebenen Text lesen. Das habe ich mir in etwa so vorgestellt:
Code: Alles auswählen
Procedure.s __GetConsoleCharacter( x.l, y.l, length.l = 1 )
If length > 0
ret$ = Space( length )
readCoord.COORD
readCoord\x = x
readCoord\y = y
numberOfCharsRead.l
If ReadConsoleOutputCharacter_( GetStdHandle_( #STD_OUTPUT_HANDLE ), @ret$, length, readCoord, @numberOfCharsRead )
Debug numberOfCharsRead
ProcedureReturn ret$
EndIf
EndIf
ProcedureReturn #NULL$
EndProcedure
OpenConsole()
EnableGraphicalConsole( #True )
For i = 0 To 20
ConsoleLocate( 0, i ) : Print( "BlaBliBlub1234567890abcdefghijklmnopqrstuvwxyz" )
Next i
Debug __GetConsoleCharacter( 0, 10, 5 )
Debug GetLastError_() ;<- ERROR_ACCESS_DENIED (0x5) !!!!!!!!!!!!!!!!
Input()
CloseConsole()
End
Leider bekomme ich aber anscheinend keinen Zugriff auf den Console Screen Buffer? Nach meiner Recherche in der MSDN fehlt mir wohl das "GENERIC_READ access right". Oder mache ich etwas anderes falsch und baue ich hier einfach totalen Mist? OS ist übrigens WinXP.
Re: Console-Inhalt lesen und speichern
Verfasst: 26.01.2010 16:22
von hörmi
Vielleicht hilft das ein bisschen weiter?
ist allerdings auch nicht das gelbe vom ei
Code: Alles auswählen
Buffer.s=Space(10000)
OpenConsole()
size=ReadConsoleData(@Buffer,10000)
PrintN("Du hast folgendes geschrieben:")
PrintN(Left(Buffer,size))
Input()
CloseConsole()
End
Re: Console-Inhalt lesen und speichern
Verfasst: 27.01.2010 19:20
von ahab
Das hilft mir auch nicht wirklich weiter. ReadConsoleData() liest ja nur etwas aus dem Input-Buffer, so wie z.B. PeekConsoleInput (
http://msdn.microsoft.com/en-us/library ... 85%29.aspx). Ich möchte ja etwas auslesen, was bereits ausgegeben wurde. In einer anderen Funktion möchte ich Eigenschaften wie Text- und Hintergrundfarbe an einer bestimmten Position der Console ermitteln. Aber bei ReadConsoleOutputAttribute_() bekomme ich ebenfalls den Fehler 5.
Re: Console-Inhalt lesen und speichern
Verfasst: 29.01.2010 15:39
von Josh
bin gerade über was gestolpert, vieleicht hilft es dir weiter. schau mal
hier auf seite 250.
Ein Vorteil von CScript ist, dass es mit der Methode WScript.StdIn.ReadLine() das Einlesen von Eingaben des Benutzer im DOS-Fenster unterstützt. Ausgaben können mit dem DOS-Befehl für Umleitungen (>) in eine Textdatei oder an einen Drucker umgeleitet werden.