snafu
08.04.2011, 14:24
Hallo zusammen, habe ein Feld als
Dim Parse_wd(8) As String * 16 definiert. Trotz der Beschränkung auf 16 Byte lange Strings kann ich auch längere Strings in den Feldvariablen speichern. Wo liegt der Fehler? Ist das ein Feature oder ein Bug?
Anbei ein Auszug aus dem Programm, danke für die Antwort!
snafu
'variablen für den parser
Dim Parser_string_len As Byte
Dim Parser_split_pointer As Byte
Dim Parse_wd(8) As String * 16
Dim Parse_wd_counter As Byte
[...]
'-------------- parse input string
For Parse_wd_counter = 1 To 8
'find first blank char
Parser_split_pointer = Instr(parse_string , " ") 'erstes ' ' suchen
If Parser_split_pointer > 0 Then '= 0 if no blank found
Parser_split_pointer = Parser_split_pointer - 1
End If
'isolate first parse word
Parse_wd(parse_wd_counter) = Mid(parse_string , 1 , Parser_split_pointer)
Dim Parse_wd(8) As String * 16 definiert. Trotz der Beschränkung auf 16 Byte lange Strings kann ich auch längere Strings in den Feldvariablen speichern. Wo liegt der Fehler? Ist das ein Feature oder ein Bug?
Anbei ein Auszug aus dem Programm, danke für die Antwort!
snafu
'variablen für den parser
Dim Parser_string_len As Byte
Dim Parser_split_pointer As Byte
Dim Parse_wd(8) As String * 16
Dim Parse_wd_counter As Byte
[...]
'-------------- parse input string
For Parse_wd_counter = 1 To 8
'find first blank char
Parser_split_pointer = Instr(parse_string , " ") 'erstes ' ' suchen
If Parser_split_pointer > 0 Then '= 0 if no blank found
Parser_split_pointer = Parser_split_pointer - 1
End If
'isolate first parse word
Parse_wd(parse_wd_counter) = Mid(parse_string , 1 , Parser_split_pointer)