CX_FILE_SOURCE_RANGE::ReadFromString
Beschreibung:
Diese Methode arbeitet ähnlich wie Read mit dem Unterschied, dass der Quellcodebereich nicht aus einer Datei ausgelesen wird, sondern der übergebene STRING-Parameter als Dateiinhalt interpretiert wird und der Quellcodebereich aus diesem STRING ausgelesen wird.
Da der Quellcodebereich aus einem STRING ausgelesen wird, hat ReadFromString im Gegensatz zu Read auch keinen Parameter, der steuert, ob #include-Anweisungen interpretiert werden sollen und der Dateiname dieses Quellcodebereichs wird hierbei nicht beachtet, sodass er auch leer sein oder auf eine nicht existierende Datei verweisen kann.
ReadFromString eignet sich besonders gut, falls mehrere Quellcodebereiche aus der gleichen Datei ausgelesen werden sollen. Dann kann die gesamte Datei einmalig eingelesen und die Bereiche im Anschluss aus diesem String ausgelesen werden, was den Vorgang erheblich beschleunigt, da es nur noch einen einzigen Dateizugriff gibt.
Hinweis: Falls der Quellcodebereich aus einem Teilbereich des Quellcodes ausgelesen werden soll (Bsp: Der Codebereich eines String-Widgets, aus dem Quellcode der umschließenden Gruppe), dann lässt sich hierfür per RelativeTo ein Quellcodebereich berechnen, dessen Zeilennummerierung relativ zu dem umschließenden Bereich ist.
Code-Beispiel:
Var(fileRange, fileSource)
CreateTransObject(CX_FILE_SOURCE_RANGE) -> fileRange
fileName fileRange Put(File())
FALSE fileRange Call(Read) -> fileSource
ranges iterate {
LocalVar(range) -> range
fileSource range Call(ReadFromString)
// ... do something with the source
}
Stack | Positionn | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(In) | Top | CX_FILE_SOURCE_RANGE | Der Quellcodebereich, der aus dem String gelesen werden soll |
Top-1 | STRING | Der String aus welchem der Quellcodebereich ausgelesen werden soll | |
Stack(Out) | Top | STRING | Der ausgelesene Quellcodebereich |