Deutsch
Forum

langen Textstring auslesen

 

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  
 




Jörg
Sellmeyer
Welche Versin hast Du denn? Die komfortabelste Möglichkeit wäre wohl das Upgrade auf XProfan10. Weiter kannst Du den Inhalt in einer Bereichsvariablen bearbeiten.
Mit
KompilierenMarkierenSeparieren
Char(B#,StartAdresse&,AnzahlBytes&)
kannst Du deinen ganzen Speicherinhalt auslesen.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
24.08.2008  
 



XProfanversion ab in die Signatur - wurdest vor dem Posten auch darauf hingewiesen.
 
24.08.2008  
 




Rainer
Trusch
Ich habe XProfan 10. Der komplette String wird ja auch aus der Datei eingelesen und ich kann ihn z.B. mit dem simplen "print" über den Bildschirm wuseln lassen.
 
Win XP XProfan10
24.08.2008  
 




Jörg
Sellmeyer
Also bei mir funktioniert das hier problemlos:
KompilierenMarkierenSeparieren
Var s$ = MkStr$("Dies ist ein Test! ",32767)
Print Len(s$)
Print Mid$(s$,32767 + 1000,150)
WaitInput
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
24.08.2008  
 



Bestimmt hat die Textdatei
s oder as.
 
24.08.2008  
 




Rainer
Trusch
Zunächst einmal vielen Dank.
Ich hänge mal eine Beispieldatei an. Es handelt sich im eine Plotdatei. Die soll ausgelesen und grafisch angezeigt werden. Bis zur o.g. magischen Grenze funzt das auch.

52 kB
Hochgeladen:24.08.2008
Ladeanzahl140
Herunterladen
 
Win XP XProfan10
24.08.2008  
 




Jörg
Sellmeyer
Poste doch einfach mal den Code, mit dem Du die Datei einliest und dann den String ausliest. Und zwar als lauffähiges Minmalbeispiel.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
24.08.2008  
 




Rainer
Trusch
...aber nicht lachen...

3 kB
Kurzbeschreibung: ich hoffe, es ist die richtige..
Hochgeladen:24.08.2008
Ladeanzahl102
Herunterladen
 
Win XP XProfan10
24.08.2008  
 




Jörg
Sellmeyer
Das ist zuviel! Mach einen neuen Code in dem Du nur die Datei einliest und den String wieder ausgibst. Vielleicht erledigt sich Dein Problem dann schon.
Bei mir funktioniert es nämlich
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
24.08.2008  
 




Sebastian
Sprenger
Jörg Sellmeyer
Bei mir funktioniert es nämlich

Wird die Schrift "Was soll denn das werden" (siehe Rainers Anhang 12345.txt) bei dir denn zu Ende geschrieben? Bei mir nicht.

Wie ich gerade feststelle, kann XProfan tatsächlich Strings bearbeiten, die länger als 32767 Zeichen sind - der Befehl Input  kann es aber offensichtlich nicht! Rainer, ersetze mal diese drei Zeilen:
KompilierenMarkierenSeparieren
Reset #2
i& = 0
Input #2,Zeile$
durch diese:
KompilierenMarkierenSeparieren
OpenRW #2
i& = 0
Zeile$ = GetChar$(#2, GetFileSize(#2))
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  
 




Jörg
Sellmeyer
Ich meinte nicht, daß Rainers Programm bei mir funktioniert, sondern daß Profan bei mir Strings > 32767 auslesen kann.
Ich weiß ja nicht genau, was Du mit den Daten anstellen willst, aber Du kannst wahrscheinlich effektiver mit SubStr$ die Werte ermitteln:
KompilierenMarkierenSeparieren
Cls
ChDir "D:Downloads"
Declare B#,bytes&,s1$
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")

        Print SubStr$(s1$,&Loop,";PD"),&Loop
        sleep 100
        Case %mousepressed=2:waitinput

    Wend

    Print "#####################################"
    sleep 10
    Case %mousepressed=2:waitinput

Wend

WaitInput

P.S.: ist übrigens sehr cool mit der Schrift!
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
24.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.912 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