| |
|
|
- Seite 1 - |
|
Rainer Trusch | Ich möchte eine Textdatei auslesen, die nur aus einem String besteht, der allerdings sehr lang ist. @mid$ und @len$ bearbeiten den String offensichtlich nur bis zur Position 32767. Wie komme ich an die Zeichen, die danach kommen?
|
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
Rainer Trusch | Vielen Dank!! Es funktioniert tatsächlich. Leider merke ich wieder einmal, dass ich noch viel lernen muss.
P.S. Zur Erklärung: Es handelt sich bei den Dateien um Plot-Dateien. Im Endeffekt soll damit mal eine Selbstbau- Fräse angesteuert werden. |
|
|
| |
|
|
|
Jörg Sellmeyer | Hier nochmal mit auslesen. Ist verkehrt herum, aber mit etwas Anpassung wirds klappen: KompilierenMarkierenSeparierenCls
Screen 3000,3000
ShowMax
ChDir "D:Downloads"
Declare B#,bytes&,s1$,s2$,x%,y%
Var size& = FileSize("12345.txt")
Dim B#, Size& + 1
Var hdl& = Assign("12345.txt")
OpenRW hdl&
bytes& = @BlockRead(hdl&, B#, 0, size&)
Close hdl&
Assign hdl&,""
Var s$ = Char$(B#,0,bytes&)
Print bytes&,Len(s$)
Print Mid$(s$,32767,100)
Print Len(s$,"PD"),"-mal PD im Text enthalten"
Print Len(s$,"PU"),"-mal PD im Text enthalten"
WaitInput
hdl& = Assign("12345.txt")
Reset hdl&
Clear bytes&
WhileLoop Len(s$,"PU")
s1$ = SubStr$(s$,&Loop,"PU"),&Loop
Print "Gruppe: " + Str$(&Loop)
WhileLoop Len(s1$,";PD")
s2$ = SubStr$(s1$,&Loop,";PD"),&Loop
x% = Val(SubStr$(s2$,1,","))
y% = Val(SubStr$(s2$,2,","))
If &Loop = 1
MoveTo x%,y%
EndIf
LineTo x%,y%
sleep 100
Case %mousepressed=2:waitinput
Wend
Print "#####################################"
sleep 10
Case %mousepressed=2:waitinput
Wend
WaitInput
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 24.08.2008 ▲ |
|
|
|
|
Jörg Sellmeyer | Noch eine Frage zu Deinem Code: Was bezweckst Du mit dieser Zeile? KompilierenMarkierenSeparieren Knopf ist doch gar kein Fensterobjekt, sondern nur der Rückgabewert der Messagebox. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 24.08.2008 ▲ |
|
|
|
|
Jörg Sellmeyer | Ok, jetzt hab ichs KompilierenMarkierenSeparierenCls
Screen 2000,2000
ShowMax
ChDir "D:Downloads"
Declare B#,bytes&,s1$,s2$,x%,y%
Var size& = FileSize("12345.txt")
Dim B#, Size& + 1
Var hdl& = Assign("12345.txt")
OpenRW hdl&
bytes& = @BlockRead(hdl&, B#, 0, size&)
Close hdl&
Assign hdl&,""
Var s$ = Char$(B#,0,bytes&)
Print bytes&,Len(s$)
Print Mid$(s$,32767,100)
Print Len(s$,"PD"),"-mal PD im Text enthalten"
Print Len(s$,"PU"),"-mal PU im Text enthalten"
Print Len(s$,"PZ"),"-mal PZ im Text enthalten"
WaitInput
Clear bytes&
WhileLoop Len(s$,"PU")
s1$ = SubStr$(s$,&Loop,"PU"),&Loop
Print "Gruppe: " + Str$(&Loop)
WhileLoop Len(s1$,";PD")
s2$ = SubStr$(s1$,&Loop,";PD"),&Loop
x% = Val(SubStr$(s2$,1,","))
y% = Val(SubStr$(s2$,2,","))
If &Loop = 1
moveto (x%) , ( %Maxy + 2000 - y%)
MoveTo x%,y%
EndIf
lineto (x%) , ( %Maxy + 2000 - y%)
LineTo x%,y%
sleep 100
Case %mousepressed=2:waitinput
Wend
Print "#####################################"
sleep 10
Case %mousepressed=2:waitinput
Wend
WaitInput
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 24.08.2008 ▲ |
|
|
|
|
Rainer Trusch | ich glaube, die Box wollte nicht verschwinden. Außerdem weiß ich immer nicht, woher man die Rückgabewerte der entsprechenden Dialogboxen bekommt. Die Hilfe zu Profan ist ja sehr umfangreich aber viele Dinge finde ich einfach nicht. |
|
|
| |
|
|
|
Jörg Sellmeyer | |
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 24.08.2008 ▲ |
|
|
|
|
Sebastian Sprenger | Rainer Trusch
ich glaube, die Box wollte nicht verschwinden. Wenn ich das richtig verstanden habe - nee, ist ein Irrglaube. Eine MessageBox verschwindet immer, wenn einer der Buttons oder das Schließen-Kreuz gedrückt wird, vorher nicht. Und vorher geht das Programm auch nicht weiter. Rainer Trusch
die Rückgabewerte der entsprechenden Dialogboxen bekommt. Ist auf zwei Hilfeseiten erklärt: Referenz > Funktionen > MessageBox (ganz unten: "Das Ergebnis ist der gedrückte Knopf") Referenz > Systemvariablen > %Button (diese Systemvariable wird nach jeder MessageBox-, ListBox-, LoadFile$-Funktion etc. gesetzt) Gruß, Sebastian |
|
|
| Profan² 7.0e, XProfan 9, 11.2a, FreeProfan32 Windows Vista Home Premium 32-Bit, 2.8 Ghz, 4 GB RAM Windows Me, 1.8 Ghz, 256 MB RAM | 24.08.2008 ▲ |
|
|
|
|
Rainer Trusch | OK habe die Informationen gefunden. Bin beeindruckt, wie genial Ihr die Problematik gelöst habt.
Bedanke mich und wünsche noch einen schönen Abend. |
|
|
| |
|
|
|
Jörg Sellmeyer | Wie weit ist dieses plt-Format eigentlich standardisiert? Wenn ich mit Coreldraw eine Grafik als plt speicherer erhalte ich komplett andere Daten. Die Buchstaben PU PD u.s.w. sind immer noch drin, aber alles ist tatsächlich Zeilenweise gespeichert und nach PU, PD kommt immer noch ein Minuszeichen:
IN; IN; VS32,1; VS32,2; VS32,3; VS32,4; VS32,5; VS32,6; VS32,7; VS32,8; WU0; PW0.350,1; PW0.350,2; PW0.350,3; PW0.350,4; PW0.350,5; PW0.350,6; PW0.350,7; PW0.350,8; SP1; PU-2174 4119; PD-2271 4119; PD-2271 5010; PD-2469 5010; PD-2469 5107; PD-1977 5107; PD-1977 5010; PD-2174 5010; PD-2174 4119; SP1; PU-1216 4462; PD-1889 4462; PD-1889 4462; PD-1888 4447; PD-1886 4432; PD-1884 4418;
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 24.08.2008 ▲ |
|
|
|
|
Frank Abbing |
Wenn ich das richtig verstanden habe - nee, ist ein Irrglaube. Eine MessageBox verschwindet immer, wenn einer der Buttons oder das Schließen-Kreuz gedrückt wird, vorher nicht. Und vorher geht das Programm auch nicht weiter.
Wobei es Möglichkeiten gibt, das auch abzufangen oder die Box in einem eigenen Thread zu starten... |
|
|
| |
|
|
|
Rainer Trusch | Ich habe auch schon festgestellt, dass es viele Varianten gibt. Hättest du z.B. eine Uraltversion von Corel Draw (ich weiß es von Version 3), würde die Datei bis auf die Zeilenumbrüche gar nicht so anders aussehen. Das HPGL-Format ist ja schon recht alt und wurde immer weiter ergänzt. Befehle, die z.B. Farbangaben enthalten, gab es anfangs logischerweise nicht. Außerdem gibt es viele Parameter und Befehle, die aber in den Dateien, die von den gängigen Programmen erstellt werden so gut wie gar nicht vorkommen. Eine komplette Übersicht habe ich da auch nicht. Hier sind einige Befehle zu finden: www.dorner.at/support/documents/okipage6ex_000.pdf |
|
|
| |
|
|
|
| Einen Code fuer einen hpgl-Viewer hatte ich gepostet - nutzt Dir dieser etwas? |
|
|
| |
|
|