Daten aus *.txt in ein Array laden

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Marvin133
Beiträge: 80
Registriert: 25.01.2010 15:51
Computerausstattung: Win 7 Home Premium 64 Bit \ PB 4.41 Demo\2.8Ghz QuadCore \4GB RAM\ nVidia GTS 250
Kontaktdaten:

Daten aus *.txt in ein Array laden

Beitrag von Marvin133 »

ich habe versucht eine integer zahl aus einer txt datei in ein array zu laden und dann auszugeben nur leider funktioniert das ganze nicht so wie ich will icxh hoffe ihr habt eine lösung.

Code: Alles auswählen

OpenFile(0,"Data\level.txt") 
    
    Dim Tiles(10)    
    
    While Eof(0) = 0           
      
      
      
      FileSeek(0,0)
      
      Tiles(0)  = ReadInteger(0)
      
      CloseFile(0) 
      
      
      Debug(Tiles(0))
    
            
    Wend
                
 
Win 7 Home Premium 64 Bit \ PB 4.41 Demo\2.8Ghz QuadCore \4GB RAM\ nVidia GTS 250

Bild
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

Re: Daten aus *.txt in ein Array laden

Beitrag von ts-soft »

ReadInteger funktioniert nicht mit txt-Dateien! Entweder Du schreibst die Datei binär oder
Du wandelst den String mit Val()
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
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Daten aus *.txt in ein Array laden

Beitrag von STARGÅTE »

Da haut was in deiner Frage nicht hin:
"ich habe versucht eine integer zahl aus einer txt datei in ein array zu laden "

Eine einzige Zahl wirst du wohl kaum in ein Array packen können,

Du hast vermutlich viele Zahlen. Sind die mit Zeilenumbrüchen "verbunden" dann konntest du jede Zeile (also Zahl) mit ReadString einlesen und mit Val umwandeln und dann ins Array schmeißen.
Du kannst aber auch ein anderes Verbindunszeichen wählen, zB ein ; und dann nur ein mal ReadString anwenden und dann mit StringField() die einzelnen "Felder" auslesen und dnan mit Val umwandeln.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Marvin133
Beiträge: 80
Registriert: 25.01.2010 15:51
Computerausstattung: Win 7 Home Premium 64 Bit \ PB 4.41 Demo\2.8Ghz QuadCore \4GB RAM\ nVidia GTS 250
Kontaktdaten:

Re: Daten aus *.txt in ein Array laden

Beitrag von Marvin133 »

trotzdem gibt er bei mir nur ein null aus obwohl in der txt datein iene 128 gespeichert ist

Code: Alles auswählen

OpenFile(0,"Data\level.txt") 
    
    Dim Tiles.s(10)    
    
    While Eof(0) = 0           
      
      
      
      FileSeek(0,0)
      
      Tiles.s(0)  = ReadString(0)
      
      
      
      CloseFile(0) 
      
      
      Debug Val("Tiles(0)")
    
            
    Wend
Win 7 Home Premium 64 Bit \ PB 4.41 Demo\2.8Ghz QuadCore \4GB RAM\ nVidia GTS 250

Bild
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: Daten aus *.txt in ein Array laden

Beitrag von rolaf »

Lass mal die Gänsefüsse bei Val wech... :wink:
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Daten aus *.txt in ein Array laden

Beitrag von Kaeru Gaman »

mach die umwandlung beim einlesen.

Code: Alles auswählen

Dummy$ = ReadString(0)
Tiles(n)  = Val(Dummy$)
du brauchst doch nicht platz für 5 buchstaben verbraten, wenn du sowieso die nummer haben willst.

... aber STRiP:
speicher deine Map gleich als Zahlen in einem Binary.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten