Source/ Codesnippets | | | | - page 1 - |
| Jörg Sellmeyer | Salut, j'ai la fois un paire Regexpressions zusammengefummelt, avec denen Funktionen comment Sous, Mul u.s.w automatisch aus dem Voir le texte source entfernt volonté peut. Hiermit peut aucun imbriquées Funktonen ersetzt volonté et OU et AND rester unbehandelt. quand même peux es einem une la quantité travail décroître. KompilierenMarqueSéparationDeclare Term$[10,2],Wert$[5]
Declare Edit&,Text&,hFont&,btnLaden&,btnStarten&,btnSpeichern&,Liste&,ListeFertig&
Term$[0,0] = ([Ss][Uu][Bb])+ ?~(
Term$[1,0] = (([Aa][Dd][Dd])+ ?~()
Term$[2,0] = (([Aa][Dd][Dd]~$)+ ?~()
Term$[3,0] = (([Mm][Uu][Ll])+ ?~()
Term$[4,0] = ([Dd][Ii][Vv]+ ?~()
Term$[5,0] = ([Dd][Ii][Vv]&+ ?~()
Term$[6,0] = ([Aa][Nn][Nn]+ ?~()Wem was dazu einfällt...
Term$[7,0] = ([Oo][Rr]+ ?~()
Term$[8,0] = ([Mm][Oo][Vv][Ee][Ll][Ii][Ss][Tt][Tt][Oo]+([Ll][Ii][Ss][Tt]|[Cc][Hh][Oo][Ii][Cc][Ee]|[Ee][Dd][Ii][Tt]) ?~()
Term$[9,0] = (([Ss][Ee][Tt])([Aa][Uu][Tt][Oo][Pp][Aa][Ii][Nn][Tt]|
[Dd][Ee][Cc][Ii][Mm][Aa][Ll][Ss]|
[Nn][Uu][Mm][Ww][Ii][Dd][Tt][Hh]|
[Cc][Hh][Aa][Rr][Ss][Ee][Tt]|
[Ee][Rr][Rr][Oo][Rr][Ll][Ee][Vv][Ee][Ll]|
[Ff][Ii][Ll][Ee][Mm][Oo][Dd][Ee]|
[Tt][Rr][Uu][Ee][Cc][Oo][Ll][Oo][Rr]|
[Ss][Tt][Rr][Ww][Ii][Dd][Tt][Hh])) [0-9]+
Term$[0,1] = -
Term$[1,1] = +
Term$[2,1] = +
Term$[3,1] = *
Term$[4,1] = /
Term$[5,1] = \
Term$[6,1] = &
Term$[7,1] = |
Term$[8,1] = MoveListToHandle(
Wert$[0] = ( ?[0-9]+(~.[0-9]+)? ?)Zahl
Wert$[1] = ( ?[!%&]?[A-Za-z0-9]+[!%&]? ?)numerische Variable; Hex-, Binär- oder Octalzahl; Konstante oder Systemvariable
Wert$[2] = ( ?q{1}.*q{1} ?)String
Wert$[3] = ( ?([A-Za-z0-9ÄÖÜäöü~-_])+~$+ ?)Stringvariable oder Konstante
Wert$[4] = ( ?~$+[A-Za-z0-9ÄÖÜäöü~-_]+ ?)Stringkonstante
Proc Bearbeiten
Parameters Zeile$,hEdit&,hText&
Declare Funktion$,RegExpVar$,FunktionTransformiert$
Case Zeile$ > :SetText hEdit&,Zeile$
{ Sub:
RegExpVar$ = Term$[0,0] + ( + Wert$[0] + | + Wert$[1] + ) + , + ( + Wert$[0] + | + Wert$[1] + ) + ~)
While Match$(RegExpVar$,Zeile$) >
Funktion$ = Match$(RegExpVar$,Zeile$)
Set(RegEx,1)
FunktionTransformiert$ = Translate$(Funktion$,Term$[0,0],()
FunktionTransformiert$ = Translate$(FunktionTransformiert$,,,Term$[0,1])
Set(RegEx,0)
Zeile$ = Translate$(Zeile$,Funktion$,FunktionTransformiert$)
Case Zeile$ > :SetText hText&,Zeile$
Wend
}
{ Add:
RegExpVar$ = Term$[1,0] + ( + Wert$[0] + | + Wert$[1] + ) + , + ( + Wert$[0] + | + Wert$[1] + ) + ~)
While Match$(RegExpVar$,Zeile$) >
Funktion$ = Match$(RegExpVar$,Zeile$)
Set(RegEx,1)
FunktionTransformiert$ = Translate$(Funktion$,Term$[1,0],()
FunktionTransformiert$ = Translate$(FunktionTransformiert$,,,Term$[1,1])
Set(RegEx,0)
Zeile$ = Translate$(Zeile$,Funktion$,FunktionTransformiert$)
Case Zeile$ > :SetText hText&,Zeile$
Wend
}
{Add$:
RegExpVar$ = Term$[2,0] + ( + Wert$[2] + | + Wert$[3] + | + Wert$[4] + ),( + Wert$[2] + | + Wert$[3] + | + Wert$[4] + ) + ~)
While Match$(RegExpVar$,Zeile$) >
Funktion$ = Match$(RegExpVar$,Zeile$)
Set(RegEx,1)
FunktionTransformiert$ = Translate$(Funktion$,Term$[2,0],()
FunktionTransformiert$ = Translate$(FunktionTransformiert$,,,Term$[2,1])
Set(RegEx,0)
Zeile$ = Translate$(Zeile$,Funktion$,FunktionTransformiert$)
Case Zeile$ > :SetText hText&,Zeile$
Wend
}
{Mul:
RegExpVar$ = Term$[3,0] + ( + Wert$[0] + | + Wert$[1] + ) + , + ( + Wert$[0] + | + Wert$[1] + ) + ~)
While Match$(RegExpVar$,Zeile$) >
Funktion$ = Match$(RegExpVar$,Zeile$)
Set(RegEx,1)
FunktionTransformiert$ = Translate$(Funktion$,Term$[3,0],()
FunktionTransformiert$ = Translate$(FunktionTransformiert$,,,Term$[3,1])
Set(RegEx,0)
Zeile$ = Translate$(Zeile$,Funktion$,FunktionTransformiert$)
Case Zeile$ > :SetText hText&,Zeile$
Wend
}
{Div
RegExpVar$ = Term$[4,0] + ( + Wert$[0] + | + Wert$[1] + ) + , + ( + Wert$[0] + | + Wert$[1] + ) + ~)
While Match$(RegExpVar$,Zeile$) >
Funktion$ = Match$(RegExpVar$,Zeile$)
Set(RegEx,1)
FunktionTransformiert$ = Translate$(Funktion$,Term$[4,0],()
FunktionTransformiert$ = Translate$(FunktionTransformiert$,,,Term$[4,1])
Set(RegEx,0)
Zeile$ = Translate$(Zeile$,Funktion$,FunktionTransformiert$)
Case Zeile$ > :SetText hText&,Zeile$
Wend
}
{Div&
RegExpVar$ = Term$[5,0] + ( + Wert$[0] + | + Wert$[1] + ) + , + ( + Wert$[0] + | + Wert$[1] + ) + ~)
While Match$(RegExpVar$,Zeile$) >
Funktion$ = Match$(RegExpVar$,Zeile$)
Set(RegEx,1)
FunktionTransformiert$ = Translate$(Funktion$,Term$[5,0],()
FunktionTransformiert$ = Translate$(FunktionTransformiert$,,,Term$[5,1])
Set(RegEx,0)
Zeile$ = Translate$(Zeile$,Funktion$,FunktionTransformiert$)
Case Zeile$ > :SetText hText&,Zeile$
Wend
}
{MoveListTo
RegExpVar$ = Term$[8,0]
While Match$(RegExpVar$,Zeile$) >
Funktion$ = Match$(RegExpVar$,Zeile$)
FunktionTransformiert$ = Translate$(Funktion$,Funktion$,Term$[8,1])
Set(RegEx,0)
Zeile$ = Translate$(Zeile$,Funktion$,FunktionTransformiert$)
Case Zeile$ > :SetText hText&,Zeile$
Wend
}
{Set...
RegExpVar$ = Term$[9,0]
Declare Zahl$
While Match$(RegExpVar$,Zeile$) >
Funktion$ = Match$(RegExpVar$,Zeile$)
Zahl$ = SubStr$(Funktion$,2, )
FunktionTransformiert$ = Translate$(Funktion$,Zahl$,q, + Zahl$ + ))
FunktionTransformiert$ = Translate$(FunktionTransformiert$,Left$(FunktionTransformiert$,3),Left$(FunktionTransformiert$,3) + (q)
Zeile$ = Translate$(Zeile$,Funktion$,FunktionTransformiert$)
Case Zeile$ > :SetText hText&,Zeile$
Wend
}
Return Zeile$
EndProc
Proc DateiLaden
Declare Datei$,Zeile$
Datei$=LoadFile$(Profan-Code laden,Profan-Code (*.prf)|*.prf|
+ Include-Datei (*.inc)|*.inc)
If Datei$ >
ClearList Liste&
Assign #1,Datei$
Reset #1
WhileNot @Eof(#1)
Input #1,Zeile$
AddString(Liste&, Zeile$)
Wend
Close #1
WindowTitle Datei$ + geladen
EndIf
EndProc
Proc DateiBearbeiten
If GetCount(Liste&) > 0
Declare Zeile$,ZeileNeu$
ClearList ListeFertig&
WhileLoop 0,GetCount(Liste&)
locate 12,0
Zeile$ = GetString$(Liste&,&Loop)
ZeileNeu$ = Bearbeiten(Zeile$,Edit&,Text&)
AddString(ListeFertig&,ZeileNeu$)
If ZeileNeu$ <> Zeile$
AddString Str$(&Loop) + + Trim$(Zeile$)
AddString Str$(&Loop) + + Trim$(ZeileNeu$)
EndIf
Wend
ListBox$(Änderungen,2)
WindowTitle Translate$(GetText$(%hwnd),geladen,bearbeitet)
EndIf
EndProc
Proc DateiSpeichern
If GetCount(ListeFertig&) > 0
Declare Datei$
Datei$ = SaveFile$(Datei speichern,Profan-Code (*.prf)|*.prf|
+ Include-Datei (*.inc)|*.inc|
+ Andere (*.*)|*.*))
If Datei$ >
Assign #1,Datei$
ReWrite #1
WhileLoop 0,GetCount(ListeFertig&)
Print #1,GetString$(ListeFertig&,&Loop)
Wend
Close #1
WindowTitle Translate$(GetText$(%hwnd),bearbeitet,gespeichert)
EndIf
EndIf
EndProc
Window 1,1 - 1100,400
hFont& = Create(Font,MS Sans Serif,14,0,0,0,0)
SetDialogFont hFont&
Edit& = Create(Edit,%hwnd,,0,0,Width(%hwnd),24)
Text& = Create(Text,%hwnd,,0,50,Width(%hwnd),24)
btnLaden& = Create(Button,%hwnd,laden,10,100,60,24)
btnStarten& = Create(Button,%hwnd,starten,80,100,60,24)
btnSpeichern& = Create(Button,%hwnd,speichern,150,100,60,24)
Liste&=Create(List,0)
ListeFertig&=Create(List,0)
While 1
Waitinput
If Clicked(btnLaden&)
ChDir C:/ProfanTools
DateiLaden
ElseIf Clicked(btnStarten&)
DateiBearbeiten
ElseIf Clicked(btnSpeichern&)
DateiSpeichern
EndIf
Wend
DeleteObject hFont&
|
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 10.10.2006 ▲ |
| |
| | | | | - page 4 - |
| Dietmar Horn | oui, cet Version startet wenigstens, aussi si cela Programmfenster pour 1024 x 768 dans qui Hauteur um etwa 20 - 30 Pixel kleiner son pourrait, avec cela es vollständig sur den Bildschjirm paßt.
Den reste werde je später testen.
ah bon: ältere Versionen voulais je également testen, doch weil là chez mir absolu gar rien passierte (encore pas la fois une Fehlermeldung), J'ai eu mich seulement la fois pas grand plus avec cela befaßt.
Salut Dietmar |
| | | Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V. [...] Windows 95 bis Windows 7 Profan² 6.6 bis XProfan X2 mit XPSE Das große XProfan-Lehrbuch: [...] | 14.10.2006 ▲ |
| |
| | Dietmar Horn | sur qui Schnelle rausgefischt:
Aus -> FileMode 2 wird -> Set(Filemode ,2) gemacht (alors Bug, weil un Leerzeichen zuviel).
Salut Dietmar |
| | | Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V. [...] Windows 95 bis Windows 7 Profan² 6.6 bis XProfan X2 mit XPSE Das große XProfan-Lehrbuch: [...] | 14.10.2006 ▲ |
| |
| | Jörg Sellmeyer | qui Taille habe je maintenant nochmal à kleiner Bildschirme ajusté. je vergeß toujours, qui je une 19il habe et cela nichtgerade Standard ist. qui Set...-Befehle devrait maintenant marcher.
(encore pas la fois une Fehlermeldung), J'ai eu mich seulement la fois pas grand plus avec cela befaßt.
tant pis, hätteste wenigstens cela la fois kurz mitgeteilt, ensuite hätte je mich früher sur qui Fehlersuche faire peut.
Salut Jörg |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 14.10.2006 ▲ |
| |
| | Dietmar Horn | allô Jörg,
chez kleineren Bildschirmauflösungen knallt es jusqu'à maintenant quand même encore!
Tip: simple %MaxX et %MaxY abfragen et conforme à cela (sous Berücksichtigung des Client-Bereiches des Hauptfensters) qui Objekte sur dem Hauptfenster bricoler.
Meiner attitude pour sollte un solches Tool aussi heutzutage encore abwärtskompatibel jusque 640 x 480 son (seulement en supplément pourrait je Dir un kilometerlanges Posting comme Begründung envoyons - pourquoi, wieso, weshalb usw. une solche Vorgehensweise encore toujours günstiger wäre ...).
qui oberen beiden CreateText-Zeilen serait je entier omettre. sur schnelleren Rechnern erkennt on là sowieso nix (sauf qui là Irgendwas relativ sinnlos avant sich rumzappelt) - et sur langsameren PCs wird par cela zweimalige SetText chez chacun Codezeile cela Programme seulement unnötig ausgebremst. chez längeren Quelltexten intéresser solche Infos eh keinen - sauf qui cela Programme avec seinem Getue possible vite fertig volonté möge.
aussi serait je qui beiden Listviews bzw. Gridboxen également pas zeitnah ständig avec chacun qui justement bearbeiteten Codezeilen füllen, car cela bremst seulement unnötig et intéressé keinen. simple vom Programme qui travail so vite comment possible faire faire - et bien is es.
Zum Schluß wird schlicht et simple dans irgendeiner vernünftigen forme cela Ergebnis präsentiert, peut-être. encore avec Editiermöglichkeit, o.ä. Den reste wird sich chacun Programmierer sowieso selber avec seinem bevorzugten Editor anschauen et testen - alors, si alles korrekt umgewandelt worden ist, usw. ...
qui ganze Grafik-Schnick-Schnack, usw. ist meiner attitude pour chez einem solchen Tool Pille-Palle et alors völlig uninteressant.
Notfalls würden chez längeren Sources comme Fortschrittsanzeige (avec cela qui User pas croyez, qui sich cela Programme peut-être. aufgehängt hätte) un paire kreiselnde bzw zappelnde simple ASCII- ou bien Ansi-marque ausreichen.
je crois, quelque chose comme wird en tout aussi comme Software-Ergonomie bezeichnet (ou bien so ähnlich ...).
Salut Dietmar |
| | | Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V. [...] Windows 95 bis Windows 7 Profan² 6.6 bis XProfan X2 mit XPSE Das große XProfan-Lehrbuch: [...] | 14.10.2006 ▲ |
| |
| | Jörg Sellmeyer |
chez kleineren Bildschirmauflösungen knallt es jusqu'à maintenant quand même encore!
c'est oui ärgerlich! tu as naturellement droite - cela doit ajusté volonté. quand même darf meiner attitude pour ne...aucune simpler Absturz passer. je vermute la fois, cela Profan là encore une Macke hat. Votre Anregungen J'ai eu alle déjà sur qui ToDo-liste. Es volonté encore un paire Optionseinstellungen dazukommen, qui qui grafischen Sachen Abschaltbar faire. (simple la fois avec rechter Bouton de la souris sur cela la fenêtre klicken) sommes car Votre Codes korrekt traduit worden? si là encore faute sommes, ist es mir im Moment wichtiger, qui trop korrigieren.
merci pour Testen! Salut Jörg |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 14.10.2006 ▲ |
| |
| | | | - page 5 - |
| | Frank Abbing | déjà un nützliches Programme, justement pour ältere Quellcodes. seulement EQU et EQU$ volonté wohl encore pas traduit, qui Quellcodes oui maximum unübersichtlich faire. |
| | | | |
| | Jörg Sellmeyer | qui Habe je doch glatt oublier qc! merci Frank!
Salut Jörg |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 14.10.2006 ▲ |
| |
| | Jörg Sellmeyer | je denke je nähere mich einer final Version
cela Programme sollte maintenant sous allen Auflösungen jusqu'à mind. 800 x 600 courir. Equ et Equ$ sommes incorporé. qui bearbeiteten Zeilen volonté pas angezeigt aussi qui Listen seulement am Ende des Vorgangs pleine im Optionsmenü peux cela umgeändert volonté (rechte Bouton de la souris appelez cela menu sur) Wend peux sur Wunsch ausgenommen volonté qui Funktionsumwandlung peux sur Wunsch abgeschaltet volonté (z. B. si seulement vieille DBase-Befehle dans einem sonst aktuellen Code sommes) qui DBase-Befehle peut ausgenommen volonté (kleiner Geschwindigkeitsvorteil - sinnvoll si on cet Funktionalitäten sowieso pas im Programme hat.)
une im Modifier le champ de sous qui rechten Listbox bearbeitete la ligne ersetz avec Enter direct qui entsprechende la ligne dans qui linken Listbox.
chez mir braucht cela Programme pour ca. 5000 Zeilen 53 Sekunden. alors aussi grand Programme laisser sich dans akzeptabler Zeit transformer. je werde encore une Funktion einbauen avec qui pour qui Umwandlung weitere (pas bearbeitete ) Vorkommen qui überflüssigen Begriffe trouver laisser. qui peut ensuite trop Fuß nachbearbeitet volonté.
s'il te plaît testen et rückmelden. merci nochmal à alle Tester! @Roland: si es car endgültig fertig ist, peux cela Programme volontiers avec sur qui CD.
Salut Jörg |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 14.10.2006 ▲ |
| |
| | Peter Max Müller | Hello, à Jörch, (je sais je nerve )
Am Ende des Umwandelns venez une Fehlermeldung avec la ligne 527 Variable pas declariert I%
et cet la ligne kannste la fois testen.
Créer(Text,D%,°C,509, 127,15,15)
Ferner manquer scheinbar : Neq,Neq$,GT,LT et SetErrorLevel
salut |
| | | | |
| | Rolf Koch | oui, habe grad 30000 Zeilen durchgezogen. Werde es sur lauffähigkeit ensuite la fois testen. Zeit était aussi encore akzeptabel. Sieht déjà la fois super aus. cependant weis on nie, car je printe oui aussi Profanbefehle dans Fichiers et cela muss je chez quelque chose Freizeit la fois näher anschauen. mais d'abord einmal: Respekt
Achja, cela avec I% pas deklariert venez chez mir aussi. |
| | | | |
| | Jörg Sellmeyer |
| | | Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 14.10.2006 ▲ |
| |
| | Torsten Rümker | Jörg Sellmeyer
im Optionsmenü peux cela umgeändert volonté (rechte Bouton de la souris appelez cela menu sur)
j'ai chez mir im Optionsmenü une Erreur d'affichage, si je qui DB befehle rausnehme (commuter sur non) wird aussi qui Menupunkt au-dessous sur non umgestellt (alors: Funktionen => Operatoren). qui Einstellung des Menüpunktes ändert sich dadurch mais pas, scheint alors seulement faux vergebener Text trop son.
MfG Torsten |
| | | Ich lerne, ob ich will oder nicht! Betriebssystem: - Ubuntu 15.x - Windows (diverse) XProfan Version: X2 | 15.10.2006 ▲ |
| |
|
Zum QuelltextOptions du sujet | 43.349 Views |
Themeninformationencet Thema hat 10 participant: |