Deutsch
Forum

langen Textstring auslesen

 
- 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?
 
Win XP XProfan10
24.08.2008  
 



 
- 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.
 
Win XP XProfan10
24.08.2008  
 




Jörg
Sellmeyer
Hier nochmal mit auslesen. Ist verkehrt herum, aber mit etwas Anpassung wirds klappen:
KompilierenMarkierenSeparieren
Cls
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
Case Knopf% = 7 : @DestroyWindow(Knopf%)

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
KompilierenMarkierenSeparieren
Cls
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.
 
Win XP XProfan10
24.08.2008  
 




Jörg
Sellmeyer
Welche Werte von welchen Boxen?
Der Rückgabewert ist der angeklickte Button:
KompilierenMarkierenSeparieren
Declare ret%,Ende%
Cls

Proc ProgEnde

    ret% = @MessageBox("Willst Du schon aufhören?","Ernstgemeinte Frage",3 + 32)
    Case Ret% = 6:Ende% = 1
    Return Ret%

EndProc

WhileNot Ende%

    WaitInput
    Case IsKey(27):Print ProgEnde()"Escape"

Wend

WaitInputnur um Das Ergebnis bei Ja noch ansehen zu können
 
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.
 
Win XP XProfan10
24.08.2008  
 




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...
 
24.08.2008  
 




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
 
Win XP XProfan10
25.08.2008  
 



Einen Code fuer einen hpgl-Viewer hatte ich gepostet - nutzt Dir dieser etwas?
 
26.08.2008  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

5.905 Betrachtungen

Unbenanntvor 0 min.
Ostfriesenjack11.08.2021
Georg Teles07.07.2021
H.Brill15.04.2014
Bert Lehnhoff01.07.2011
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie