Seite 1 von 1

Ende eines Datablockes ermittlen

Verfasst: 09.12.2010 14:07
von Gonzo
Hallo zusammen,
mit DATASECTION und ENDDATASECTION kann man einen Datenblock erstellen, dem man mittles RESTORE aufrufen kann und den inhalt bzw. die daten mittels READ einlesen kann. Wie kann ich das Einlesen stoppen, wenn der Datenblock vollständig eingelesen wurde und keine daten mehr vorhanden sind?
Gruss, gonzo

Re: Ende eines Datablockes ermittlen

Verfasst: 09.12.2010 14:15
von NoUser
.

Re: Ende eines Datablockes ermittlen

Verfasst: 09.12.2010 15:33
von shadow
Das wäre ein Feature Request wert, hab nämlich auch sowas paar mal gebrauchen können /:->

Re: Ende eines Datablockes ermittlen

Verfasst: 09.12.2010 15:45
von Kiffi
shadow hat geschrieben:Das wäre ein Feature Request wert, hab nämlich auch sowas paar mal gebrauchen können /:->
Feature Request? Für was? Noch einfacher als die von
marroh vorgeschlagene Lösung wird's wohl kaum gehen.

Grüße ... Kiffi

// Edit: Hier noch mal eine leicht abgewandelte Variante

Code: Alles auswählen

EnableExplicit

Procedure Main()
  Protected.s sString
  Restore label1
  Repeat
    Read.s sString
    If sString = ""
      Break
    EndIf
    Debug sString  
  ForEver
EndProcedure

Main()

End

DataSection
  label1:
  Data.s "String 1", "String 2", "String 3", ""
EndDataSection

Re: Ende eines Datablockes ermittlen

Verfasst: 09.12.2010 15:59
von shadow
Feature Request? Für was? Noch einfacher als die von
marroh vorgeschlagene Lösung wird's wohl kaum gehen.
Für eine elegantere Syntax. Z. B. sowas hier:
(wobei hier DataSection für die Datenzeile steht, also bis entweder ein neues Label kommt oder EndDataSection erreicht ist)

Code: Alles auswählen

EnableExplicit

Procedure Main()
  Protected.s sString
  Restore label1
  Repeat
    Read.s sString
    Debug sString 
  until DataSectionEnd(label1) 
EndProcedure

Main()

End

DataSection
  label1:
  Data.s "String 1", "String 2", "String 3", ""
EndDataSection

Re: Ende eines Datablockes ermittlen

Verfasst: 09.12.2010 16:03
von Bisonte
Für eine elegantere Syntax. Z. B. sowas hier:
Butter bei die Fische...

Wenn man eine DataSection in seinem Programm hat, dann weiss man auch, was da drin steht.
Wie will man sie sonst auch einlesen ?

Ist ja nicht so das eine DataSection dynamisch wäre...

Re: Ende eines Datablockes ermittlen

Verfasst: 09.12.2010 16:11
von shadow
Ist ja gut, das war ja nur ein Gedanke.

Aber hey, sowas wie foreach für array-Elemente ist eigentlich auch unnötig, wird aber aus bequemlichkeit doch gemacht. Also, wo wird denn dann die Grenze gezogen was sinnvoll ist und was nicht?