Seite 5 von 9

Re: [IDE-Tool]Einruecker

Verfasst: 25.12.2012 13:59
von ts-soft
CompilerElseIf fehlt :wink: (für PB 5.10)

Re: [IDE-Tool]Einruecker

Verfasst: 25.12.2012 15:43
von HeX0R
ts-soft hat geschrieben:CompilerElseIf fehlt :wink: (für PB 5.10)
Überredet ;)

Re: [IDE-Tool]Einruecker

Verfasst: 02.02.2013 03:20
von Danilo
Habe mir gerade dieses Tool installiert, aber irgendwie funktioniert das überhaupt nicht.
Habe zum testen glücklicherweise "reload... into new source" gewählt, um nicht meinen Source zu zerstören.

Kleines Beispiel:

Code: Alles auswählen

Procedure command1(x)
EndProcedure

Procedure command2(x)
EndProcedure

If x = 0 : Debug "x = 0" : End : EndIf
If x = 0 : Debug "x = 0" : End : EndIf
If x = 0 : Debug "x = 0" : End : EndIf
If x = 0 : Debug "x = 0" : End : EndIf
If x = 0 : Debug "x = 0" : End : EndIf

For i = 1 To   10 : command1(0) : Next : command2(     10)
For i = 1 To  100 : command1(0) : Next : command2(    100)
For i = 1 To 1000 : command1(0) : Next : command2(   1000)
Einrücker meint dazu "Something wrong with your Code!", allerdings läuft der Code wunderbar. Was soll mit dem Code wrong sein? :)
Die Ausgabe sieht dann so aus:

Code: Alles auswählen

Procedure command1(x)
EndProcedure

Procedure command2(x)
EndProcedure

If x = 0 : Debug "x = 0" : End : EndIf
    If x = 0 : Debug "x = 0" : End : EndIf
        If x = 0 : Debug "x = 0" : End : EndIf
            If x = 0 : Debug "x = 0" : End : EndIf
                If x = 0 : Debug "x = 0" : End : EndIf

                    For i = 1 To   10 : command1(0) : Next : command2(     10)
                        For i = 1 To  100 : command1(0) : Next : command2(    100)
                            For i = 1 To 1000 : command1(0) : Next : command2(   1000)
If..EndIf und For..Next in der gleichen Zeile funktionieren nicht.

Re: [IDE-Tool]Einruecker

Verfasst: 02.02.2013 16:24
von HeX0R
?
Dein Beispiel kommt bei mir so raus:

Code: Alles auswählen

Procedure command1(x)
EndProcedure

Procedure command2(x)
EndProcedure

If x = 0 : Debug "x = 0" : End : EndIf
If x = 0 : Debug "x = 0" : End : EndIf
If x = 0 : Debug "x = 0" : End : EndIf
If x = 0 : Debug "x = 0" : End : EndIf
If x = 0 : Debug "x = 0" : End : EndIf

For i = 1 To   10 : command1(0) : Next : command2(     10)
For i = 1 To  100 : command1(0) : Next : command2(    100)
For i = 1 To 1000 : command1(0) : Next : command2(   1000)
[Edit]
Ah ja, o.k., du hast es offensichtlich als unicode compiliert. Das hab ich nie gemacht, da ist wohl noch ein Bug drin.
Aber da die PB-IDE eh kein Unicode unterstützt, macht es auch nicht viel Sinn das Tool als unicode exe zu compilieren.

Re: [IDE-Tool]Einruecker

Verfasst: 02.02.2013 17:31
von Danilo
HeX0R hat geschrieben:[Edit]
Ah ja, o.k., du hast es offensichtlich als unicode compiliert. Das hab ich nie gemacht, da ist wohl noch ein Bug drin.
Aber da die PB-IDE eh kein Unicode unterstützt, macht es auch nicht viel Sinn das Tool als unicode exe zu compilieren.
OK. Der Fehler war in FindCommand() -> '*B + 1' in '*B + SizeOf(Character)' ändern. Vielen Dank!

So einen richtigen Unterschied zum IDE-Einrücker gibt es aber nicht, oder? (Format indention CTRL+I, vorher CTRL+A)

Re: [IDE-Tool]Einruecker

Verfasst: 02.02.2013 21:49
von HeX0R
Danilo hat geschrieben:So einen richtigen Unterschied zum IDE-Einrücker gibt es aber nicht, oder? (Format indention CTRL+I, vorher CTRL+A)
Der größte Unterschied ist, dass es das Tool schon lange gab, bevor das Feature fest in die IDE eingebaut wurde.
Ein weiterer ist z.b., dass es aus

Code: Alles auswählen

a = 12
abcde = 14
im Gegensatz zu dem internen das hier macht:

Code: Alles auswählen

a     = 12
abcde = 14
Und es rückt bei Compilerif und Konsorten nicht ein (weil ich persönlich das nicht mag)

Re: [IDE-Tool]Einruecker

Verfasst: 03.02.2013 07:00
von Danilo
HeX0R hat geschrieben:
Danilo hat geschrieben:So einen richtigen Unterschied zum IDE-Einrücker gibt es aber nicht, oder? (Format indention CTRL+I, vorher CTRL+A)
Ein weiterer ist z.b., dass es aus

Code: Alles auswählen

a = 12
abcde = 14
im Gegensatz zu dem internen das hier macht:

Code: Alles auswählen

a     = 12
abcde = 14
Ging hier auch nicht, wenn man mit Unicode kompiliert. Egal - habe es nun mit ohne Unicode kompiliert. ;)
Danke nochmals dafür!

Re: [IDE-Tool]Einruecker

Verfasst: 03.02.2013 15:59
von HeX0R
Danilo hat geschrieben:Ging hier auch nicht, wenn man mit Unicode kompiliert.
O.k., hab das mal in Ordnung gebracht.

Kleiner Tipp:
Wenn das Tool anzeigt, dass etwas nicht in Ordnung ist, sollte man auch die Möglichkeit nutzen das Umformen abzubrechen (sonst kommt meistens nur Käse raus).
Das passiert i.d.R. aber nur, bei etwas verwurschtelten Compiler-Direktiven.
Z.B. mit so etwas kommt er nicht klar:

Code: Alles auswählen

CompilerIf #PB_Compiler_Processor = #PB_Processor_x86
Structure _WHATEVER_
CompilerElse
Structure _WHATEVER_ Align 8
CompilerEndIf
a.b
b.w
f.d
EndStructure

Re: [IDE-Tool]Einruecker

Verfasst: 03.02.2013 16:02
von ts-soft
Das Folding der IDE schafft das auch nicht :mrgreen:
Damit wird man wohl leben müssen/können.

Gruß
Thomas

Re: [IDE-Tool]Einruecker

Verfasst: 03.02.2013 16:22
von helpy
[OffTopic]
HeX0R hat geschrieben:Z.B. mit so etwas kommt er nicht klar:

Code: Alles auswählen

CompilerIf #PB_Compiler_Processor = #PB_Processor_x86
Structure _WHATEVER_
CompilerElse
Structure _WHATEVER_ Align 8
CompilerEndIf
a.b
b.w
f.d
EndStructure
Da kann man auch den Code anpassen:

Code: Alles auswählen

CompilerIf #PB_Compiler_Processor = #PB_Processor_x86
	Macro StructureAlign : EndMacro
CompilerElse
	Macro StructureAlign : Align 8 : EndMacro
CompilerEndIf
Structure _WHATEVER_ StructureAlign
	a.b
	b.w
	f.d
EndStructure
Das ist auch viel lesbarer!

[/OffTopic]

guido