Français
Source/ Codesnippets

Befehlszeilentrennung

 
- page 1 -



RudiB.
allô zusammen,

je stehe wohl à einer pour mich schier unlösbaren devoir.
je voudrais un Programme-Listing avec Befehlszeilentrennung par Doppelpunkte, aufsplitten dans separate Programmzeilen.
comme Sonderfall soll cependant une la ligne avec "Case" ou bien "CaseNot" beibehalten volonté.

ici la fois un absolu Sinnfreies Listing et après cela Listing bereinigt.
CLS
Déclarer a$,b$:Déclarer c$,d$
Déclarer e$:Imprimer "Hallo \
zusammen !":Déclarer INT GROBI: GROBI=500
a$=" qui le chien allez zum \
hell brennenden feu um sich \
trop wärmen: ABER!!\
qui chatte steht ihm im weg"
b$="nicht LEER"
c$="Test"
d$="fertig"
Imprimer:Imprimer:Cas b$=»:Imprimer" B ist LEER":Imprimer GROBI
Imprimer c$,d$,GROBI
waitinput

...et so solls ensuite air.....quoi je absolu pas hinkriege !!!!
CLS
Déclarer a$,b$
Déclarer c$,d$
Déclarer e$
Imprimer "Hallo \
zusammen !"
Déclarer INT GROBI
GROBI=500
a$=" qui le chien allez zum \
hell brennenden feu um sich \
trop wärmen: ABER!!\
qui chatte steht ihm im weg"
b$="nicht LEER"
c$="Test"
d$="fertig"
Imprimer
Imprimer
Cas b$=»:Imprimer" B ist LEER"
Imprimer GROBI
Imprimer c$,d$,GROBI
waitinput

....z.B: alleine déjà qui String dans VAR a$ avec einem Doppelpunkt y est un Herausforderung dar...weil ici aussi encore qui eigentliche Befehlszeile avec einem Backslash aufgesplittet wird...

aussi ici im Forum wird cela erste Listing avec den Cordes farblich pas korrekt dargestellt....

Stehe justement voll sur dem Schlauch...
peux mir ici quelqu'un sur qui Sprünge aider ???
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
15.10.2022  
 



 
- page 2 -



RudiB.
oui Walter eigentlich so.....ist oui déjà cool
cependant voudrais je une komplette Befehlszeilen-Auftrennung (ausser Cas/Casenot) ....
sprich, aussi pour einem Cas/Casenot devrait Befehle getrennt volonté....
je weiss oui c'est Tricky..schwierig...sch..schwer.

mais je denke ici peux je anknüpfen....
il me faut cela pour mon projet "VarFinder"....
hab là encore so viele Baustellen offen....

mais merci erstmal....
Rudi
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
19.10.2022  
 




Walter
mon Irrtum - je passe cela cas/caseNot à, avec cela es so fonctionne, comment Du es brauchst...
 
19.10.2022  
 




Georg
Teles
Hmpf suis verwirrt, la fois Cas avec Si ersetzen eventuell ?

so solls air
CLS
Déclarer a$,b$
Déclarer c$,d$
Déclarer e$
Imprimer "Hallo \
zusammen !"
Déclarer INT GROBI
GROBI=500
a$=" qui le chien allez zum \
hell brennenden feu um sich \
trop wärmen: ABER!!\
qui chatte steht ihm im weg"
b$="nicht LEER"
c$="Test"
d$="fertig"
Imprimer
Imprimer

Si b$=»

    Imprimer" B ist LEER"

EndIf

Imprimer GROBI
Imprimer c$,d$,GROBI
waitinput

ici avec Trennung
CLS
Déclarer a$,b$:Déclarer c$,d$
Déclarer e$:Imprimer "Hallo \
zusammen !":Déclarer INT GROBI: GROBI=500
a$=" qui le chien allez zum \
hell brennenden feu um sich \
trop wärmen: ABER!!\
qui chatte steht ihm im weg"
b$="nicht LEER"
c$="Test"
d$="fertig"
Imprimer:Imprimer:Si b$=»:Imprimer" B ist LEER":EndIf:Imprimer GROBI
Imprimer c$,d$,GROBI
waitinput

Grüße
 
XProfan X2
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

19.10.2022  
 




RudiB.
allô Walter,

vielen Dank pour Votre Mühe... ist déjà pas simple,,,,,
cependant la hâte Du très gute Ansätze......

mon Test-objet-Listings/Herausforderungen ici Forum sommes:
z.B.:
CPU-Simulation....https://XProfan.net/intl/de/anwendungen/8bit-cpu-simulation/

et  [...] 
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
19.10.2022  
 




RudiB.
allô Georg,

...merci pour Deinen Kommentar....

je ne sais pas so wirklich, si je mich ici konkret genug ausgedrückt habe.
je travaille toujours à meinem projet "VarFinder".
voilà es plan important, Programmzeilen trop analysieren..... sprich cela Programme muss Befehlszeilen auftrennen peut.
justement dans Bezug sur Si et Endif einer la ligne, aussi cet soll aufgetrennt volonté peut.
dans diesem Beispiel gehts la fois seulement tout autor um une Programmformatierung vernünftig durchzuführen.
et so gehts plus ......Probleme...Probleme...usw.
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
19.10.2022  
 




Georg
Teles
Hmpf,

streng pris symbolisiert qui Doppelpunkt bereits une neue la ligne chez Cas/Casenote
cls
var d%=2
cas d%=1
imprimer "asd"
cas d%=2
imprimer "dffff"
waitinput

Bedeutet, dass du mittels Parsen den Doppelpunkt auparavant entfernst et une neue la ligne daraus fais ou bien je après que, si du den Doppelpunkt comme neue la ligne interpretierst, la fois so comme concept

Grüße
 
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

19.10.2022  
 




RudiB.
OK... mal comme Hintergrund pour mon Intension.
mon Programme "VarFinder" soll alle Variablen dans einem Programme trouver peut, sprich dans quel la ligne "Deklariert" dans welchen Zeilen venez vous encore avant, ist vous Global deklariert ou bien venez vous aussi encore dans einer "Proc" avant usw.
Gibt es Schleifen, Abfragen " Si Endif"" etc.
Hierzu muss je eh bien la fois chacun Programmzeile auseinanderfieseln/décomposer...
Ist pas justement simple...
J'ai pensé déjà je wäre presque am but, cependant wurde sur den Boden qui réalité geholt,comme je im Praxistest avec Programmen aus diesem Forum, feststellen musste le moi encore large entfernt suis vom but......
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
19.10.2022  
 




Georg
Teles
Puh, oui ensuite muss akribisch la ligne pour la ligne avec Strukturen verglichen et entschieden volonté, quoi là vorliegt

simple klingt es pas
 
XProfan X2
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

19.10.2022  
 




RudiB.
non simple bestimmt pas ...cependant denke je, le moi sur einem guten Weg suis.
il y a avec Sicherheit encore viele faute im Programme.....suis mais ständig dabei cet auszumerzen...plan sur diesem Wege et toujours dans qui espoir cela es quelqu'un gibt, qui une neue "PROFANE" concept reinwirft
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
19.10.2022  
 




Walter
Neuer Versuch...
' cela Codestück teilt Befehlszeilen chez ":" dans neue Zeilen sur,
' sauf
'   a) qui ":" est sich dedans eines Stringliterals; ou bien
'   b) pour cas/caseNot.
'      ici bleibt qui erste ":" avec dem folgenden Befehl dans derselben
'      la ligne conservé.
' Kommentarzeilen sommes pas berücksichtigt;
' qui doit ggf auparavant ausgeschieden volonté
cls
Déclarer Dossier$
declare StringAn%,i%,dans$,out$,a$[]
declare AnzDP%
StringAn%=0
AnzDP%=0
Datei$=Loadfile$("ÖFFNE:","*.prf")
Assign #1,Dossier$
reset #1
Imprimer "Working.....Please Wait"

WhileNot EOF(#1)

    input #1,dans$
    a$[]=explode(dans$)' marque qui la ligne dans Array écrivons
    'Alle marque qui la ligne durchlaufen
    for i%,len(dans$)
    ' Feststellen, si on sich dedans eines Cordes est

    si (a$[i%-1]=Chr$(34)) and (StringAn%=0)

        StringAn%=1

    elseif (a$[i%-1]=Chr$(34)) and (StringAn%=1)

        StringAn%=0

    endif

    si a$[i%-1]=»

        ' cas UND erster : ?

        si (left$($ Trim(lower$(out$)),5)="case ") or (left$($ Trim(lower$(out$)),8)="casenot ")

            si AnzDP%=0' erster Doppelpunkt - la ligne continuer

                out$=out$+a$[i%-1]
                inc AnzDP%

            d'autre'la ligne partager

                imprimer out$
                out$=»
                AnzDP%=0

            endif

        elseIf StringAn%=0' : ist pas dedans eines Cordes - la ligne partager

            imprimer out$
            out$=»

        d'autre

            out$=out$+a$[i%-1]' : ist dedans eines Cordes - la ligne continuer

        endif

    d'autre' d'autre marque comme :

        out$=out$+a$[i%-1]

    endif

    endfor
    imprimer out$
    out$=»

Endwhile

Fermer #1
Imprimer "FERTIG"
waitinput
 
20.10.2022  
 




RudiB.
cela sieht Super aus !!!

Habe cela ganze encore erweitert, so cela ganzzeilige Kommentare übersprungen volonté et Endkommentare zunächst abgetrennt volonté et am Schluss wiederhergestellt volonté.
Ausserdem comme Besonderheit encore Sprungmarker, qui sur une Doppelpunkt enden....
' cela Codestück teilt Befehlszeilen chez ":" dans neue Zeilen sur,
' sauf
'   a) qui ":" est sich dedans eines Stringliterals; ou bien
'   b) pour cas/caseNot.
'      ici bleibt qui erste ":" avec dem folgenden Befehl dans derselben
'      la ligne conservé.
' Kommentarzeilen sommes pas berücksichtigt;
' qui doit ggf auparavant ausgeschieden volonté
cls
Déclarer Dossier$,End_Kommentar$,ausgabe%
declare StringAn%,i%,dans$,out$,a$[],pos%
declare AnzDP%,kommentar%
StringAn%=0
AnzDP%=0
Datei$=Loadfile$("ÖFFNE:","*.prf")
Assign #1,Dossier$
reset #1
Assign #2,"Test_Datei.prf"
rewrite #2

Tandis que 1

    Si (ausgabe%<1) Or (ausgabe%>2)

        Imprimer "Bitte gültigen Wert choisir ( 1 ou bien 2 )"
        ausgabe%=Contribution$("1- sur Bildschirm ausgeben / 2- dans Dossier screiben","Bitte sélection treffen",ausgabe%)

    D'autre

        pause

    EndIf

Endwhile

Imprimer "Working.....Please Wait"

WhileNot EOF(#1)

    '-----------------------------------------------------------------------------------------------------------------------
    '          *ganzzeilige Kommentare überspringen
    '-----------------------------------------------------------------------------------------------------------------------
    input #1,dans$

    Si left$($ Trim(dans$),2)="/*"

        Si ausgabe%=1

            Imprimer dans$

        D'autre

            imprimer #2,dans$

        Endif

        kommentar%=1
        continue

    Endif

    Si left$($ Trim(dans$),2)="*/"

        Si ausgabe%=1

            Imprimer dans$

        D'autre

            imprimer #2,dans$

        Endif

        kommentar%=0
        Continue

    Endif

    Si (left$($ Trim(dans$),1)="'") Or (left$($ Trim(dans$),2)="//") Or (kommentar%=1)

        Si ausgabe%=1

            Imprimer dans$

        D'autre

            Imprimer #2, dans$

        Endif

        continue

    EndIf

    '-----------------------------------------------------------------------------------------------------------------------
    '          Endkommentare couper
    '-----------------------------------------------------------------------------------------------------------------------

    Si (Instr("'",Trim$(dans$),2)) Or (Instr("//",Trim$(dans$),2))

        pos%=0
        End_kommentar$=»

        Whileloop Len(dans$)

            Si mid$(dans$,&loop,1)=chr$(34)

                pos%=Not(pos%)

            EndIf

            Si (mid$(dans$,&loop,1)="'") And (pos%=0)

                End_kommentar$=Right$(dans$,Len(dans$)-&loop+1)
                dans$=Left $(dans$,&loop-1)
                Pause

            EndIf

            Si (mid$(dans$,&loop,2)="//") And (pos%=0)

                End_kommentar$=Right$(dans$,Len(dans$)-&loop+1)
                dans$=Left $(dans$,&loop-1)
                Pause

            EndIf

        Endwhile

    EndIf

    '--------------------------------------------------------------------------------------------------------------------------

    Si right$(Trim$(dans$),1)=»' si letztes marque Doppelpunkt / Sprungmarker

        Si ausgabe%=1

            Imprimer dans$

        D'autre

            Imprimer #2, dans$

        Endif

        Continue

    Endif

    a$[]=explode(dans$)' marque qui la ligne dans Array écrivons
    'Alle marque qui la ligne durchlaufen
    for i%,len(dans$)
    ' Feststellen, si on sich dedans eines Cordes est

    si (a$[i%-1]=Chr$(34)) and (StringAn%=0)

        StringAn%=1

    elseif (a$[i%-1]=Chr$(34)) and (StringAn%=1)

        StringAn%=0

    endif

    si a$[i%-1]=»

        ' cas UND erster : ?

        si (left$($ Trim(lower$(out$)),5)="case ") or (left$($ Trim(lower$(out$)),8)="casenot ")

            si AnzDP%=0' erster Doppelpunkt - la ligne continuer

                out$=out$+a$[i%-1]
                inc AnzDP%

            d'autre'la ligne partager

                Si ausgabe%=1

                    imprimer out$

                D'autre

                    imprimer #2,out$

                Endif

                out$=»
                AnzDP%=0

            endif

        elseIf StringAn%=0' : ist pas dedans eines Cordes - la ligne partager

            Si ausgabe%=1

                imprimer out$

            D'autre

                imprimer #2,out$

            Endif

            out$=»

        d'autre

            out$=out$+a$[i%-1]' : ist dedans eines Cordes - la ligne continuer

        endif

    d'autre' d'autre marque comme :

        out$=out$+a$[i%-1]

    endif

    endfor

    Si ausgabe%=1

        imprimer out$+End_Kommentar$

    D'autre

        imprimer #2,out$+End_Kommentar$

    Endif

    End_Kommentar$=»
    out$=»

Endwhile

Fermer #1
close #2
Imprimer "FERTIG"
waitinput

Habe es ensuite avec dem Quellcode "CPU-Simulation" courir laisser.
es scheint correct durchzulaufen...
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
20.10.2022  
 




Walter
c'est doch déjà très délicat.
ensuite viel Glück - et plus so!
 
20.10.2022  
 




Zum Quelltext


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

7.991 Views

Untitledvor 0 min.
Member 862464112.05.2024
Cyberangle03.02.2023
RudiB.02.02.2023
Normann Strübli31.01.2023
plus...

Themeninformationen

cet Thema hat 3 participant:

RudiB. (13x)
Walter (8x)
Georg Teles (3x)


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