also ich hab es mal mit einem "normalen" Memo versucht und einenMartin hat geschrieben: Als Feld würde sich da wohl bei Fox ein Feld vom Typ "V" (Memo, binär) anbieten - denke ich mal, benutzt habe ich es noch nicht.
Und Index? Eher nicht, eher eine Volltextsuche...
"komischen" Effekt
Code: Alles auswählen
PROCEDURE MAIN(cFlag)
LOCAL TEST := .F.
LOCAL aNum := {}
IF PCOUNT() > 0
TEST := .T.
ENDIF
SET DATE GERMAN
SET EPOCH TO YEAR(DATE())-50
SET EXCLUSIV OFF
SETCANCEL (.T.)
IF .NOT. FILE("DEVCON.DBF")
CREATE2007()
TEST := .T.
ENDIF
USE ("DEVCON.DBF")
SET INDEX TO DEVKDNR, DEVVILM
SET ORDER TO 2
IF TEST
aNum := {1,3,5,7,11,13,17,19,23,27}
FILLSCOPE(aNum)
SET SCOPETOP TO "1"
SET SCOPEBOTTOM TO "1"
BROWSE()
SET SCOPETOP TO
aNum := {2,4,6,7,10,12,14,16,18,20,22,200}
FILLSCOPE(aNum)
SET SCOPETOP TO "1"
SET SCOPEBOTTOM TO "1"
BROWSE()
SET SCOPETOP TO
GO TOP
IF RLOCK()
REPLACE KOMMENTAR WITH Var2Bin(aNum)
UNLOCK
ENDIF
CLOSE
ENDIF
USE ("DEVCON.DBF")
SET INDEX TO DEVKDNR, DEVVILM
SET ORDER TO 2
aNum := Bin2Var(KOMMENTAR)
FILLSCOPE(aNum)
SET SCOPETOP TO "1"
SET SCOPEBOTTOM TO "1"
BROWSE()
SET SCOPETOP TO
RETURN
STATIC PROCEDURE CREATE2007
Local aStruct := { ;
{ "KDNR" ,"C" , 5, 0 } ,;
{ "NAME" ,"C" , 30, 0 } ,;
{ "VORNAME" ,"C" , 30, 0 } ,;
{ "FIRMA" ,"C" , 30, 0 } ,;
{ "STRASSE" ,"C" , 30, 2 } ,;
{ "PLZ" ,"C" , 10, 2 } ,;
{ "ORT" ,"C" , 30, 0 } ,;
{ "LAND" ,"C" , 2, 0 } ,;
{ "EMAIL" ,"C" , 30, 0 } ,;
{ "IRQ" ,"C" , 30, 0 } ,;
{ "GEBURT" ,"D" , 8, 0 } ,;
{ "KOMMENTAR" ,"M" , 10, 0 } ,;
{ "VILMESUCH" ,"C" , 1, 0 } }
DbCreate( "DEVCON.DBF", aStruct )
FILLITNOW()
RETURN
STATIC PROCEDURE FILLITNOW()
LOCAL i, iMax := 250
USE ("DEVCON.DBF")
FOR I = 1 TO iMax
APPEND BLANK
REPLACE KDNR WITH STRZERO(RECNO(),5)
* REPLACE NAME
* REPLACE VORNAME
* REPLACE FIRMA
* REPLACE STRASSE
* REPLACE PLZ
* REPLACE ORT
* REPLACE LAND
* REPLACE EMAIL
* REPLACE IRQ
* REPLACE GEBURT
* REPLACE KOMMENTAR
REPLACE VILMESUCH WITH "0"
NEXT
INDEX ON KDNR TO DEVKDNR
CLOSE INDEX
INDEX ON VILMESUCH TO DEVVILM
CLOSE INDEX
CLOSE DATABASE
RETURN
STATIC FUNCTION MARKPOSI()
IF RLOCK()
REPLACE VILMESUCH WITH "0"
UNLOCK
ENDIF
RETURN .T.
STATIC FUNCTION FILLSCOPE(aNum)
LOCAL i, iMax := LEN(aNum)
DBEVAL( {|| MARKPOSI() } ,; // <bBlock>,
{|| VILMESUCH = "1" } ) // <bForCondition>
FOR i = 1 TO iMax
GOTO (aNum[i])
IF RLOCK()
REPLACE VILMESUCH WITH "1"
UNLOCK
ENDIF
NEXT
RETURN NIL
*
* eof
*
die 2,4,6 ... Reihen korrekt im Browse an. Nun "speicher" ich das Array
im Memo und bekomme "nur" 3 Elemente {2,4,6} ... ?
Das sieht man dann auch wenn man das Programm noch mal started
(ohne parameter)
wenn ich ihn nun "zwinge" (mit parameter) "speichert" er korrekt das
ganze Array ab.
was läuft da "beim ersten Mal" ab ? muss ich Memo "vorbelegen" wenn
ich es mit einem Array "nutzen" will ?
gruss by OHR
Jimmy