Schnelleres zerlegen eines Strings

Für allgemeine Fragen zur Programmierung mit PureBasic.
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: Schnelleres zerlegen eines Strings

Beitrag von ts-soft »

Hier mal ein Skeleton ohne PeekC usw.:

Code: Alles auswählen

EnableExplicit

Global NewList Lines.s()

Procedure LinesFromMemToList(*mem)
  Protected tmp.s
  Protected *pLines.Character = *mem
  ClearList(Lines())
  Repeat
    If *pLines\c = 10
      AddElement(Lines())
      Lines() = tmp
      tmp = ""
    Else
      tmp + Chr(*pLines\c)
    EndIf
    *pLines + SizeOf(Character)
  Until *pLines\c = 0
  AddElement(Lines())
  Lines() = tmp
  FreeMemory(*mem)
EndProcedure

Procedure ReadTextToMem(FileName.s)
  Protected *Mem, Size
  Protected FF = ReadFile(#PB_Any, FileName)
  If FF
    Size = Lof(FF)
    *Mem = AllocateMemory(Size)
    If *Mem
      ReadData(FF, *Mem, Size)
    EndIf
    CloseFile(FF)
    LinesFromMemToList(*Mem)
  EndIf
EndProcedure

ReadTextToMem(#PB_Compiler_Home + "SDK\Readme.txt")

ForEach Lines()
  Debug Lines()
Next
Ich hoffe das hilft Dir weiter,

Gruss
Thomas
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
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Re: Schnelleres zerlegen eines Strings

Beitrag von Pelagio »

Danke ts-soft,

Dein Beispiel konnte ich besser umsetzen als das was ich bis dato mir abgebrochen habe.
:bounce:
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS]. :allright:
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: Schnelleres zerlegen eines Strings

Beitrag von ts-soft »

Das freut mich natürlich. Wenn Du die erste Procedure verstehst, wirste das mit dem Pointern demnächst
ohne Hilfe einsetzen können :wink:
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
Antworten