SDK-Helfer/ Tools | | | | - Seite 1 - |
| Jac de Lad | So, jetzt in eigenem Thread.
Hier ist die neuste Version (diesmal mit Quelltext), jetzt mit DragnDrop und erkennt auch Funktionen it Leerzeichen vor dem (. Außer /* und */ müsste jetzt echt alles funktionieren...ich werde mich demnächst mal ransetzen und den unaufgeräumten Quelltext in eine Struktur bringen und das Proggi beschleunigen! |
| | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 14.10.2006 ▲ |
| |
| | | | - Seite 2 - |
| | Jac de Lad | So, das mit Listbox und Co klappt jetzt, aber nur wenn nicht die Containerfunktion Create() verwendet wird. Außerdem ist der Quelltext nun etwas schneller. Und die Bearbeitung von ; und , in Strings (zum Beispiel a$=s$,f$) ist nun etwas effizienter... |
| | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 16.10.2006 ▲ |
| |
| | Jac de Lad | @Michael: Das ist keine Ausrede, sondern die Wahrheit. Als ich neulich in Members war habe ich festgestellt, dass ich als vierter von oben aufgelistet werde...mit Wally als Avatar. Keine Ahnung wer das da hingemehrt hat, aber ich wars nicht. Ich hab Wally nur runtergeladen und in Avatar einstellen für mich eingestellt, damit Wally auch in den Posts erscheint. |
| | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 16.10.2006 ▲ |
| |
| | Michael Wodrich | Mal ganz frech gefragt:
Glaubst Du, daß das einen Anwalt interessiert? |
| | | Programmieren, das spannendste Detektivspiel der Welt. | 16.10.2006 ▲ |
| |
| | Nico Madysa | Wenn die GEZ Gebühren von Toten und Haustieren verlangen, dann werden sich auch garantiert Anwälte finden, die die Ausrede in den Boden stampfen werden.
Was das Programm angeht: Top! Beim Testen habe ich keine Fehler gefunden, auch Kommentare werden beim @-Verschlingen in Ruhe gelassen. |
| | | | |
| | Jac de Lad | @Michael: Sicher, sicher...
@Nico: Danke. Der Quelltext liegt ja bei, wennde willst kannste noch folgendes einbauen:
- Erkennen von Blöcken die durch /* und */ eingeschlossen werden - Ersetzen des Parameters von Create(Listbox, Create(Sortedlistbox und Create(Choicebox durch Integerwerte (0,1 oder 2; siehe XProfan-10-Hilfe); bzw. Ersetzen von Create(SortedListbox durch Create(Listbox mit Parameter 1 (Sortierung) - Erkennen von Zeilen mit am Ende (Weiterführung auf der nächsten Zeile
Ich habe immer versucht, dass der Quelltext möglichst nahe ans Original herankommt, aber gerade bei Leerzeichen muss ich da leider Abstriche machen und lasse fast alle entfernen; deshalb sieht der Quelltext nachher leider meistens ganz anders aus: Die Einrückungen sind alle weg. Im Moment weiß ich auch nicht, wie ich das effizient verhindern kann... |
| | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 16.10.2006 ▲ |
| |
| | Nico Madysa | Das stelle ich mir nicht gerade einfach vor, aber du könntest einen Stack mitlaufen lassen, der bei proc, while(not/loop), if, etc. erhöht und beiwend, endwhile, endproc, endif, endselect, etc. erniedrigt wird. Und dann setzt du noch mit sagen wir mal @Space$(stack%) Lerrzeichen davor. |
| | | | |
| | Jac de Lad | Ähm, das ist mir zu kompliziert...deswegen hab ichs ja noch nicht gemacht. Hab noch ein bisschen aktualisiert...Create(sortedlistbox wird jetzt konsequent in Create(listbox umgewandelt. |
| | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 16.10.2006 ▲ |
| |
| | Nico Madysa | Aaaaaalso, etwas langsamer: Ich nehme an, ModernXProfan rattert mehr oder weniger zeilenweise durch den Quelltext. Du überprüfst dann einfach, ob da ein Befehl ist, der ein Einrücken erfordert. (z.B. while, proc, if, Select, etc). Wenn ein solcher Befehl vorliegt, erhöhst du eine Variable (nehmen wir mal stack%) um 1. In allen anschließend formatierten Zeilen fügst du am Anfang Space(stack%), also stack% Leerzeichen, ein. Findest du dagegen einen Befehl wie EndIf, Wend, EndSelect, EndProc, oder schieß-mich-tot-was-noch, dann wird die Variable stack% um 1 erniedrigt (dec stack%). So stelle ichs mir vor, ob es klappt ist ne andere Frage. |
| | | | |
| | | Uralt KompilierenMarkierenSeparieren##########################################################################
PRF-Struktur, a Profan OpenSource Project(theFirst?),started april 2004
Copyright (C) 2004 by DS/iF (!ReGeXiT) on (iF@mxii.com)
__________________________________________________________________________
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 1.1
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-
1307, USA.
__________________________________________________________________________
Source changed by: [20040707] [IF] [if@mxii.com] <- added xpse syntax
Source changed by: [DATE] [NICK/NAME] [EML]
Source changed by: [DATE] [NICK/NAME] [EML]
Source changed by: [DATE] [NICK/NAME] [EML]
Source changed by: [DATE] [NICK/NAME] [EML]
##########################################################################
decimals 0
def inv(1) if(@%(1),0,1)
declare s$,cx%,ch$,kl%,ln%,insa%,pre$,infle$,maxinsa%,maxln%,frl%,lnp%
proc _end
end
endproc
proc printfree
ifnot frl%
print #2,
frl%=1
add lnp%,1
endif
endproc
proc printit
parameters s$
print #2,s$
add lnp%,1
frl%=0
endproc
proc printm
parameters s$,n%
print s$,n%
sleep 1000
close #1
close #2
shell notepad _out_.txt
waitkey
end
endproc
windowtitle Struktur V1.0 - Profan
windowstyle 24
window 100,100 - 640,480
frl%=0
lnp%=0
infle$=loadfile$(Profan-Programm:,Profan-Quellcode (*.prf)|*.prf|Alle Dateien (*.*)|*.*)
if len(infle$)
assign #1,infle$
reset #1
assign #2,_out_.txt
rewrite #2
locate 1,1
print Datei:,infle$
kl%=0
ln%=0
insa%=0
maxinsa%=0
maxln%=0
whilenot eof(#1)
input #1,s$
s$=translate$(s$,chr$(7),)
s$=trim$(translate$(s$,chr$(9),))
add ln%,1
while or(equ$(chr$(9),mid$(s$,1,1)),equ$(chr$(32),mid$(s$,1,1)))
s$=del$(s$,1,1)
wend
casenot len(trim$(s$)) : continue
ifnot mod(lnp%,25)
locate 2,1
print Zeilen:,lnp%
print maximale Tiefe:,maxinsa%+1
endif
case kl% : printm string parse error in line:,lnp%
ifnot equ$(mid$(s$,1,3),P +chr$(34))
cx%=0
while lt(cx%,len(s$)+1)
add cx%,1
ch$=mid$(s$,cx%,1)
if equ$(,ch$)
ifnot kl%
s$=mid$(s$,1,cx%-1)
endif
endif
case equ$(ch$,chr$(34)) : kl%=inv(kl%)
ifnot kl%
endif
wend
s$:=trim$(s$)
case equ$(WHILE ,upper$(mid$(s$,1,6))) : printfree
case equ$(REPEAT,upper$(mid$(s$,1,6))) : printfree
case equ$(WEND,upper$(s$)) : printfree
case equ$(UNTIL,mid$(upper$(s$),1,5)) : printfree
case equ$(ENDWHILE,upper$(s$)) : printfree
case equ$(WHILENOT ,upper$(mid$(s$,1,9))) : printfree
case equ$(WHILELOOP ,upper$(mid$(s$,1,10))) : printfree
case equ$(IF ,upper$(mid$(s$,1,3))) : printfree
case equ$($IFDEF ,upper$(mid$(s$,1,7))) : printfree
case equ$($IFNDEF ,upper$(mid$(s$,1,8))) : printfree
case equ$(IFNOT ,upper$(mid$(s$,1,6))) : printfree
case equ$(PROC ,upper$(mid$(s$,1,5))) : printfree
case equ$(SUBPROC ,upper$(mid$(s$,1,8))) : printfree
case equ$(FUNCTION ,upper$(mid$(s$,1,9))) : printfree
case equ$(PROCEDURE ,upper$(mid$(s$,1,10))) : printfree
case equ$(ENDPROC,upper$(s$)) : sub insa%,1
case equ$(ENDIF,upper$(s$)) : sub insa%,1
case equ$(ENDIF,upper$(s$)) : printfree
case equ$($ENDIF,upper$(s$)) : endsub insa%,1
case equ$($ENDIF,upper$(s$)) : printfree
if equ$(ELSEIF ,upper$(mid$(s$,1,7)))
sub insa%,1
printfree
elseif equ$(ELSE,upper$(mid$(s$,1,4)))
printfree
sub insa%,1
endif
case equ$(UNTIL,upper$(mid$(s$,1,5))) : sub insa%,1
case equ$(WEND,upper$(mid$(s$,1,4))) : sub insa%,1
case equ$(ENDWHILE,upper$(mid$(s$,1,8))) : sub insa%,1
case lt(insa%,0) : printm Insafailure in line:,lnp%
if gt(insa%,maxinsa%)
maxinsa%=insa%
maxln%=lnp%
endif
pre$=mkstr$(chr$(9),insa%)
if len(trim$(s$))
printit add$(pre$,s$)
endif
case equ$(REPEAT,upper$(mid$(s$,1,6))) : add insa%,1
case equ$(WHILE ,upper$(mid$(s$,1,6))) : add insa%,1
case equ$(WHILENOT ,upper$(mid$(s$,1,9))) : add insa%,1
case equ$(WHILELOOP ,upper$(mid$(s$,1,10))) : add insa%,1
if equ$(ELSEIF ,upper$(mid$(s$,1,7)))
add insa%,1
printfree
elseif equ$(ELSE,upper$(mid$(s$,1,4)))
printfree
add insa%,1
endif
case equ$(PROC ,upper$(mid$(s$,1,5))) : add insa%,1
case equ$(SUBPROC ,upper$(mid$(s$,1,8))) : add insa%,1
case equ$(PROCEDURE ,upper$(mid$(s$,1,10))) : add insa%,1
case equ$(FUNCTION ,upper$(mid$(s$,1,09))) : add insa%,1
case equ$($IFDEF ,upper$(mid$(s$,1,7))) : add insa%,1
case equ$($IFDEF ,upper$(mid$(s$,1,7))) : printfree
case equ$(IF ,upper$(mid$(s$,1,3))) : add insa%,1
case equ$(IF ,upper$(mid$(s$,1,3))) : printfree
case equ$(IFNOT ,upper$(mid$(s$,1,6))) : add insa%,1
case equ$(IFNOT ,upper$(mid$(s$,1,6))) : printfree
case equ$(WHILENOT ,upper$(mid$(s$,1,9))) : printfree
case equ$(WHILELOOP ,upper$(mid$(s$,1,10))) : printfree
case equ$(REPEAT,upper$(mid$(s$,1,6))) : printfree
case equ$(WHILE ,upper$(mid$(s$,1,6))) : printfree
case equ$(ENDIF,upper$(s$)) : printfree
case equ$($ENDIF,upper$(s$)) : printfree
case equ$(ENDPROC,upper$(s$)) : printfree
case equ$(WEND,upper$(s$)) : printfree
case equ$(UNTIL,upper$(mid$(s$,1,5))) : printfree
case equ$(ENDWHILE,upper$(s$)) : printfree
case lt(insa%,0) : printm Insafailure in line:,lnp%
endif
wend
close #1
close #2
locate 2,1
print Zeilen:,lnp%
print maximale Tiefe:,maxinsa%+1,in Zeile,maxln%
sleep 2000
shell notepad _out_.txt
endif
end
|
| | | | |
| | Jac de Lad | Ich blicke hier nicht ganz durch aber es steht euch frei den Quelltext anzupassen und hier zu posten. Welchen Vorteil soll das für mich bringen? |
| | | Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 18.10.2006 ▲ |
| |
| | Michael Wodrich | Na so ein Code-Abhübscher soll den Code lesbar halten. Einrückungen automatisieren, Schlüsselworte in Großschrift wandeln, usw.
Wobei gerade diese Programme eine möglichst große OPTIONEN-Schublade haben sollten, denn die Geschmäcker sind verschieden.
Der eine bevorzugt 2 Leerzeichen zum Einrücken, der andere lieber Tabulatoren....
Der eine will die Schlüsselworte ganz groß (z.B.: GETBVALUE), der andere lieber in dieser Form (GetBValue)....
Schöne Grüße Michael Wodrich |
| | | Programmieren, das spannendste Detektivspiel der Welt. | 19.10.2006 ▲ |
| |
| | Michael Dell | | | | Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 19.10.2006 ▲ |
| |
|
AntwortenThemenoptionen | 50.649 Betrachtungen |
ThemeninformationenDieses Thema hat 10 Teilnehmer: |