| |
|
|
GDL | Hallöle
ich sehe den Wald vor lauter Bäumen nicht mehr. Zum Verständnis habe ich ein Bild angehängt.
Warum geht hier match$ nicht ? KompilierenMarkierenSeparierenDim datei#,10000
Assign #1,gettext$(dbfedit1&)
OpenRW #1
x%=@BlockRead(#1,datei#,0,10000)
Close #1
name$=char$(datei#,0,x%)'DBF-Datei steht in name$
dispose datei#
x%=1
print name$
print ""
print ""
assign #1,gettext$(stringedit1&)
reset #1
WhileNot @EOF(#1)'Felder ermitteln
Input #1,dzeile$
y%=InStr(";",dzeile$,0)-1
dzeile$=left$(dzeile$,y%)
dzeile$=upper$(dzeile$)
print dzeile$
If Match$(dzeile$,name$)=dzeile$
cls
endif
EndWhile
clos # 1
Liegt es an den Befehlen blockread und char die name$ irgendwie mit zusätzlichen Steuerzeichen beschreiben?
Ein nachvollziehbares Beispiel: KompilierenMarkierenSeparierendeclare name$,dzeile$,datei#,x%,y%
dim datei#,10000
assign #1,"test.str"
rewrite #1
print #1,"test;C;100;0"
print #1,"test1;C;100;0"
print #1,"test2;C;100;0"
close #1
dbcreate "test.str" > "test.dbf"
Assign #1,"test.dbf"
OpenRW #1
x%=@BlockRead(#1,datei#,0,10000)
Close #1
name$=char$(datei#,0,x%)'DBF-File steht in name$
print name$
x%=1
print ""
print ""
assign #1,"test.str"
reset #1
WhileNot @EOF(#1)'Felder ermitteln
Input #1,dzeile$
y%=InStr(";",dzeile$,0)-1
dzeile$=left$(dzeile$,y%)
dzeile$=upper$(dzeile$)
print dzeile$
If Match$(dzeile$,name$)=dzeile$
beep
endif
EndWhile
close #1
assign #1,"test.str"
erase #1
close #1
assign #1,"test.dbf"
erase #1
close #1
waitinput
dispose datei#
Grüßle Georg |
|
|
| |
|
|
|
GDL | ein nachvollziehbares Beispiel oben editiert. |
|
|
| |
|
|
|
GDL | Hallöle,
habe es jetzt ohne match$ per mich gelöst. KompilierenMarkierenSeparierendeclare name$,dzeile$,datei#,x%,y%,ansonsten$,lang%,n$,such%,a%
dim datei#,10000
assign #1,"test.str"
rewrite #1
print #1,"test;C;100;0"
print #1,"test1;C;100;0"
print #1,"test2;C;100;0"
close #1
dbcreate "test.str" > "test.dbf"
Assign #1,"test.dbf"
OpenRW #1
x%=@BlockRead(#1,datei#,0,10000)
Close #1
name$=char$(datei#,0,x%)'DBF-Datei steht in name$
print name$
x%=1
print ""
print ""
assign #1,"test.str"
reset #1
such%=len(name$)
WhileNot @EOF(#1)'Felder ermitteln
Input #1,dzeile$
y%=InStr(";",dzeile$,0)-1
dzeile$=left$(dzeile$,y%)
dzeile$=upper$(dzeile$)
print dzeile$
If Match$(dzeile$,name$)=dzeile$
print "Gefunden"
else
print "geht nicht"
endif
'diese Befehle gehen
ansonsten$=translate$(name$,dzeile$,"XXXXXXX")
print ansonsten$
print "________________________"
'dies hier geht
lang%=len(dzeile$)
clear a%
whilenot a% > such%
n$=mid$(name$,a%,lang%)
case n$=dzeile$:print "mit diesem Weg gefunden"
inc a%
wend
EndWhile
close #1
assign #1,"test.str"
erase #1
close #1
assign #1,"test.dbf"
erase #1
close #1
waitinput
/../funktionsreferenzen/xprofan/dispose/'>dispose datei#
Grüßle Georg |
|
|
| |
|
|
|
| Hallo Georg,
einige Fehler.
Instr dritter Parameter bei Dir Wert 0, so kann instr nicht - minimum Wert 1 oder dritten Param in Deinem Fall gleich weglassen.
Fehlerzeile:
y%=InStr(";",dzeile$,0)-1
So gehts:
y%=InStr(";",dzeile$,1)-1
oder:
y%=InStr(";",dzeile$)-1
Zudem:
Die Funktion Match scheint nicht Binärsicher zu sein.
Die Aiuto dazu meint:
T: String - Text, in dem nach dem Suchmuster gesucht wird |
|
|
| |
|
|
|
GDL | Hallöle,
vielen Dank. Also bleibe ich bei meiner umständlichen aber gehenden Version.
Grüßle Georg |
|
|
| |
|
|
|
| Da hast Du aber auch Instr Wert v. Dritten Param 0 ,
das kann nicht funktionieren bzw. ist falsch. |
|
|
| |
|
|