Français
Comprend

Console

 

PRFellow-Présentation
Autor: Thomas Bois - Alle Rechte vorbehalten
Beispiel-Programme pour une fenstergebundene Console
Requiert Profan 6.1 à cause de Addr-Funktion
(Commutateur sur Profan 5.0 avec Bereichsvariable ist possible)
(c) 2000 Thomas Bois, Siegen - Alle Rechte vorbehalten
Def AllocConsole(0) !KERNEL32,AllocConsole
Def CloseHandle(1) !KERNEL32,CloseHandle
Def CreateConsoleScreenBuffer(5) !KERNEL32,CreateConsoleScreenBuffer
Def FillConsoleOutputAttribute(5) !KERNEL32,FillConsoleOutputAttribute
Def FlushConsoleInputBuffer(1) !KERNEL32,FlushConsoleInputBuffer
Def FreeConsole(0) !KERNEL32,FreeConsole
Def GetConsoleTitle(2) !KERNEL32,GetConsoleTitleA
Def GetConsoleScreenBufferInfo(2) !KERNEL32,GetConsoleScreenBufferInfo
Def GetStdHandle(1) !KERNEL32,GetStdHandle
Def ReadConsole(5) !KERNEL32,ReadConsoleA
Def ReadConsoleOutputCharacter(5) !KERNEL32,ReadConsoleOutputCharacterA
Def ReadFile(5) !KERNEL32,ReadFile
Def SetConsoleActiveScreenBuffer(1) !KERNEL32,SetConsoleActiveScreenBuffer
Def SetConsoleCursorPosition(2) !KERNEL32,SetConsoleCursorPosition
Def SetConsoleMode(2) !KERNEL32,SetConsoleMode
Def SetConsoleTextAttribute(2) !KERNEL32,SetConsoleTextAttribute
Def SetConsoleTitle(1) !KERNEL32,SetConsoleTitleA
Def WriteConsole(5) !KERNEL32,WriteConsoleA
Def WriteConsoleOutputCharacter(5) !KERNEL32,WriteConsoleOutputCharacterA
Def WriteFile(5) !KERNEL32,WriteFile
Def OemToCharBuff(3) !USER32,OemToCharBuffA
Def CharToOemBuff(3) !USER32,CharToOemBuffA
Def FillMemory(3) !KERNEL32,RtlFillMemory
Def ZeroMemory(2) !KERNEL32,RtlZeroMemory
Def ExitProcess(1) !KERNEL32,ExitProcess
Def MakeLong(2) Or(&(1),Mul(&(2),$10000))
Def HiWord(1) Div&(&(1),$10000)
Def LoWord(1) And(&(1),$FFFF)
Def GetInput(0) $(0)
Def GetCleanInput(0) Upper$(Trim$($(0)))
Def RemoveCR(1) Translate$($(1),Ajouter$(Chr$(13),Chr$(10)),Chr$(32))
Déclarer hinput&,houtput&,herror&,hscrbuf&
Déclarer BUF_INFO#,c_buf#
Déclarer INPUT_REC#

Proc GetScreenBufSize

    Déclarer size&
    Faible BUF_INFO#,20
    GetConsoleScreenBufferInfo(hscrbuf&,BUF_INFO#)
    Laisser size&=Long(BUF_INFO#,0)
    Laisser size&=Mul(LoWord(size&),HiWord(size&))  chez WideChar * 2, mais wir prendre ANSI
    Dispose BUF_INFO#
    Retour size&

ENDPROC

Proc LineColor

    Paramètres fg%,bg%
    Déclarer colattr&
    Laisser colattr&=Or(fg%,Mul(bg%,4))
    SetConsoleTextAttribute(hscrbuf&,colattr&)

ENDPROC

Proc _WriteLn

    Paramètres txt$,oem_convert%,cr%
    Déclarer written&
    Laisser txt$=txt$
    Cas cr%: Laisser txt$=txt$;Chr$(13);Chr$(10)
    Faible c_buf#,Ajouter(Len(txt$),1)
    String c_buf#,0=txt$
    Cas oem_convert%: CharToOemBuff(c_buf#,c_buf#,Len(txt$))
    WriteConsole(hscrbuf&,c_buf#,Len(txt$),Addr(written&),0)
    WriteFile(hscrbuf&,c_buf#,Len(txt$),Addr(written&),0)
    Dispose c_buf#

ENDPROC

Proc Write

    Paramètres txt$
    _Writeln txt$,1,0

ENDPROC

Proc WriteCR

    _Writeln ,0,1

ENDPROC

Proc WriteLn

    Déclarer txt$,i%
    Laisser i%=1

    WhileNot Gt(i%,%pcount)

        Laisser txt$=Ajouter$(txt$,$(i%))
        Inc i%

    Wend

    _Writeln txt$,1,1

ENDPROC

Proc WriteCGI

    Paramètres txt$
    _Writeln txt,0,0

ENDPROC

Proc WriteLnCGI

    Déclarer txt$,i%
    Laisser i%=1

    WhileNot Gt(i%,%pcount)

        Laisser txt$=Ajouter$(txt$,$(i%))
        Inc i%

    Wend

    _WriteLn txt$,0,1

ENDPROC

Proc ReadLn

    Déclarer read&,txt$
    Faible c_buf#,261
    ZeroMemory(c_buf#,261)
    ReadConsole(hinput&,c_buf#,261,Addr(read&),0)
    Laisser txt$=RemoveCR(String$(c_buf#,0))
    Dispose c_buf#
    Retour txt$

ENDPROC

Proc ReadOutput

    doit encore sur zeilenweises Lecture umgestellt volonté WG. CR
    Déclarer txt$,read&,size&
    GetScreenBufSize
    Laisser size&=&(0)
    Faible c_buf#,size&
    ZeroMemory(c_buf#,size&)
    ReadConsoleOutputCharacter(hscrbuf&,c_buf#,size&,0,Addr(read&))
    OemToCharBuff(c_buf#,c_buf#,read&)
    Laisser txt$=String$(c_buf#,0)
    Dispose c_buf#
    Laisser txt$=Translate$(txt$,   ,)
    Retour Trim$(txt$)
    Retour txt$

ENDPROC

Proc SetConsoleCaption

    Paramètres txt$
    Faible c_buf#,Ajouter(Len(txt$),1)
    String c_buf#,0=txt$
    SetConsoleTitle(c_buf#)
    Dispose c_buf#

ENDPROC

Proc GotoXY

    Paramètres x%,y%
    SetConsoleCursorPosition(hscrbuf&,MakeLong(% X, y%))

ENDPROC

Proc ClearConsole

    Paramètres color&
    Déclarer written&,size&
    GetScreenBufSize
    Laisser size&=&(0)
    Cas Lt(color&,7): Laisser color&=7
    FlushConsoleInputBuffer(hscrbuf&)
    SetConsoleTextAttribute(hscrbuf&,color&)
    Faible c_buf#,size&
    FillMemory(c_buf#,size&,32)
    WriteConsoleOutputCharacter(hscrbuf&,c_buf#,size&,0,Addr(written&))
    FillConsoleOutputAttribute(hscrbuf&,color&,size&,0,Addr(written&))
    Dispose c_buf#
    GotoXY 0,0

ENDPROC

Proc _CreateCon

    Paramètres title$,own_win%
    Cas own_win%: AllocConsole()
    SetConsoleCaption title$
    Laisser hinput&=GetStdHandle(-10)
    Laisser houtput&=GetStdHandle(-11)
    Laisser herror&=GetStdHandle(-12)
    Laisser hscrbuf&=houtput&
    SetConsoleMode(hscrbuf&,6)

ENDPROC

Proc CreateConsoleInWindow

    Paramètres txt$
    _CreateCon txt$,1

ENDPROC

Proc CreateConsole

    Paramètres txt$
    _CreateCon txt$,0

ENDPROC

Beispiel avec Mini-Befehls-Interpreter

Proc Beispiel_Ausgabe_Im_Fenster

    Déclarer c_exit%,txt$

    Proc Info

        WriteLn (c) 2000 Thomas Bois, Siegen, Alle Rechte vorbehalten

    ENDPROC

    Proc ShowHelp

        ClearConsole 31
        Info
        WriteLn
        WriteLn exit ou bien CTRL-C : finissons
        WriteLn ?                : Aider
        WriteLn cls              : Bildschirm effacer
        WriteLn about            : Info
        WriteLn

    ENDPROC

    CreateConsoleInWindow 32 Bit Profan²-Konsolen-la fenêtre - Powered by PRFellow 2001
    CreateConsole 32 Bit Profan²-Console - Powered by PRFellow 2001
    ClearConsole 31  sais sur bleu
    WriteLn donner vous ? pour Aider un et drücken vous ENTER

    WhileNot c_exit%

        ReadLn
        Laisser txt$=GetCleanInput()

        Si Equ$(txt$,)

        ElseIf Equ$(txt$,ABOUT)

            Info

        ElseIf Equ$(txt$,EXIT)

            Inc c_exit%

        ElseIf Equ$(txt$,?)

            ShowHelp

        ElseIf Equ$(txt$,CLS)

            ClearConsole 31

        D'autre

            WriteLn Ajouter$(Unbekannter Befehl: ,GetInput())

        EndIf

    Wend

    FreeConsole()
    ExitProcess(0)

ENDPROC

Beispiel_Ausgabe_Im_Fenster
 
11.09.2005  
 




Paul
Glatz

c'est oui super !!
 
16.03.2008  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

6.207 Views

Untitledvor 0 min.
ecki11.01.2023
Uwe Lang29.11.2021
QuaraMan25.08.2021
H.Brill17.05.2020
plus...

Themeninformationen

cet Thema hat 2 participant:

Paul Glatz (1x)
iF (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie