String der 1, 2, 3, usw... auslesen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

Mir ist das klar, aber er hofft anscheinend, er könnte direkt mit nur einem Aufruf an den n-ten String kommen :twisted:
Zuletzt geändert von scholly am 21.04.2008 21:54, insgesamt 2-mal geändert.
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
Benutzeravatar
Fox
Beiträge: 75
Registriert: 08.08.2007 10:14
Kontaktdaten:

Beitrag von Fox »

hi.. wow so viele antworten schon... ja ich wollte nen string direkt auslesen, so wie scholly es beschrieben hat... danke für die antworten, problem gelöst... danke euch

fox
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Beitrag von X0r »

Er kann nur von vorne lesen, dann muß er die Bedingung verändern.
Aber um die vierte Zeile zu lesen, sind erst die 3 davor zu lesen Mr. Green
Falsch. Du kannst die Position des Dateizeigers auch ändern. Allerdings muss er dann wissen, wie lang die erste Zeile ist. Und wie das geht, weiß ich nicht(Ohne len(readstring(file)))
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

X0r hat geschrieben:
Er kann nur von vorne lesen, dann muß er die Bedingung verändern.
Aber um die vierte Zeile zu lesen, sind erst die 3 davor zu lesen Mr. Green
Falsch. Du kannst die Position des Dateizeigers auch ändern. Allerdings muss er dann wissen, wie lang die erste Zeile ist. Und wie das geht, weiß ich nicht(Ohne len(readstring(file)))
Das einzig richtige an deiner Aussage ist, das man mit FileSeek den
Dateizeiger verschieben kann, der Rest ist murks und es nützt sowieso
nichts.
Textdateien haben keine feste länge. Um die länge einer Zeile festzustellen
muß man diese einlesen, das macht mein Vorschlag, ignoriert aber die
länge, weils unwichtig ist :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

X0r hat geschrieben:
Er kann nur von vorne lesen, dann muß er die Bedingung verändern.
Aber um die vierte Zeile zu lesen, sind erst die 3 davor zu lesen Mr. Green
Falsch. Du kannst die Position des Dateizeigers auch ändern. Allerdings muss er dann wissen, wie lang die erste Zeile ist. Und wie das geht, weiß ich nicht(Ohne len(readstring(file)))
:freak:
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Beitrag von X0r »

ja, was denn. :mrgreen:
Ich hab ja nur gesagt, dass er nicht nur von vorne lesen kann...

natürlich ist der rest murks, denn physisch ist die Einteilung der Zeilen nicht vorhanden.
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

jetzt laberst du schon wieder...
Tombi
Beiträge: 369
Registriert: 05.03.2008 22:05

Beitrag von Tombi »

Code: Alles auswählen

; Datei öffnen, laden ...

a.b = 2 ;Zeilennummer

For x = 1 To a
   ReadString()
Next

; Datei schließen ...
Natürlich fehlt hier noch die Abfrage, ob es sich schon am Ende der Datei befindet.

Oder wie meinste das? ^^
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Beitrag von hjbremer »

PB hilft in allen Lebenslagen, so auch hier :D

Code: Alles auswählen

dnr = 1
dat$ = "2007.txt" ;bei mir 1 MB groß

gesuchteZeile = 2068

flag = ReadFile(dnr, dat$)

If flag

    datlg = Lof(dnr)
    daten$ = Space(datlg)

    bytes = ReadData(dnr, @daten$, datlg)    
    
    erg$ = StringField(daten$, gesuchteZeile, #CRLF$)
       
    Debug Mid(erg$,2,9999)   ;der dritte Parameter soll ja bald optional sein, wurde mal versprochen
    
    daten$ = ""
    
Else
    MessageRequester("Information","Konnte Datei nicht öffnen!")
EndIf

Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Beitrag von X0r »

Und da wieder der Beweis, ts-soft, Andreas_s, geht auch ohne Zeile für Zeile lesen.
Aber ich bin jetzt mal lieber ruhig, sonst platzt jemandem noch der Schädel.
Antworten