|
Post by tsh73 on Mar 11, 2024 8:57:42 GMT -5
Yes, used provided SUB OPENDNA, I got no problem reading /writing that BTW report is somewhat unclear
- so you did look in the file with any other editor and actually see the field is empty? - but you just wrote that it was not written?
BTW you can try and *write* something (in OVERTYPE mode, so lengths did not change) into that place and see it it reads by GET (it does for me)
call OPENDNA
writeStuff=1 'comment that out so it will read existing file
'write DNA.Name$= "Peter" DNA.CurrentAge= 21 DNA.RNA$="AZTF" DNA.TotRealEstate=123456789 'too big, but it gets truncsted, ho harm done to DNA.RNA$
if writeStuff then put #dna, 1
DNA.Name$= "Pavel" DNA.CurrentAge= 27 DNA.RNA$="ZTFQWE" DNA.TotRealEstate=923456780
if writeStuff then put #dna, 2
'read for i = 1 to 2 get #dna, i print i, DNA.Name$,DNA.CurrentAge,DNA.TotRealEstate,">";DNA.RNA$;"<" 'print i, DNA.Name$ next close #dna
run "notepad.exe ";DefaultDir$;"\DNA.RND" end
SUB OPENDNA
OPEN "DNA.RND" FOR RANDOM AS #dna LEN=1426 FIELD #dna,_ 30 AS DNA.Name$,_ 2 AS DNA.CurrentAge,_ 2 AS DNA.RetirementAge,_ 4 AS DNA.BirthYear,_ 2 AS DNA.BirthMonth,_ 1 AS DNA.Gender$,_ 30 AS DNA.Address$,_ 10 AS DNA.Apartment$,_ 20 AS DNA.City$,_ 2 AS DNA.State$,_ 5 AS DNA.Zipcode$,_ 6 AS DNA.Latitude,_ 6 AS DNA.Longitude,_ 8 AS DNA.PerCapitaIncomeZipcode,_ 8 AS DNA.YearlyIncomePerson,_ 8 AS DNA.TotalDebt,_ 3 AS DNA.FICOScore,_ 2 AS DNA.NumCreditCards,_ 12 AS DNA.LastTxDateTime$,_ 5 AS DNA.LastTxZIP$,_ 10 AS DNA.LastTxAmt,_ 4 AS DNA.LastMCC,_ 5 AS DNA.NoForn,_ 4 AS DNA.MinForn,_ 6 AS DNA.MaxForn,_ 8 AS DNA.TotForn,_ 5 AS DNA.NoHotel,_ 4 AS DNA.MinHotel,_ 6 AS DNA.MaxHotel,_ 8 AS DNA.TotHotel,_ 5 AS DNA.NoFuel,_ 3 AS DNA.MinFuel,_ 4 AS DNA.MaxFuel,_ 8 AS DNA.TotFuel,_ 5 AS DNA.NoRentaCar,_ 4 AS DNA.MinRentaCar,_ 6 AS DNA.MaxRentaCar,_ 8 AS DNA.TotRentaCar,_ 5 AS DNA.NoOnline,_ 4 AS DNA.MinOnline,_ 6 AS DNA.MaxOnline,_ 8 AS DNA.TotOnline,_ 5 AS DNA.NoMarket,_ 4 AS DNA.MinMarket,_ 6 AS DNA.MaxMarket,_ 8 AS DNA.TotMarket,_ 5 AS DNA.NoCloth,_ 4 AS DNA.MinCloth,_ 6 AS DNA.MaxCloth,_ 8 AS DNA.TotCloth,_ 5 AS DNA.NoPharmacy,_ 4 AS DNA.MinPharmacy,_ 6 AS DNA.MaxPharmacy,_ 8 AS DNA.TotPharmacy,_ 5 AS DNA.NoCash,_ 4 AS DNA.MinCash,_ 6 AS DNA.MaxCash,_ 8 AS DNA.TotCash,_ 5 AS DNA.NoUtility,_ 4 AS DNA.MinUtility,_ 6 AS DNA.MaxUtility,_ 8 AS DNA.TotUtility,_ 5 AS DNA.NoAirline,_ 4 AS DNA.MinAirline,_ 6 AS DNA.MaxAirline,_ 8 AS DNA.TotAirline,_ 5 AS DNA.NoTelecom,_ 4 AS DNA.MinTelecom,_ 6 AS DNA.MaxTelecom,_ 8 AS DNA.TotTelecom,_ 5 AS DNA.NoBar,_ 4 AS DNA.MinBar,_ 6 AS DNA.MaxBar,_ 8 AS DNA.TotBar,_ 5 AS DNA.NoRest,_ 4 AS DNA.MinRest,_ 6 AS DNA.MaxRest,_ 8 AS DNA.TotRest,_ 5 AS DNA.NoRisky,_ 4 AS DNA.MinRisky,_ 6 AS DNA.MaxRisky,_ 8 AS DNA.TotRisky,_ 5 AS DNA.NoHealth,_ 4 AS DNA.MinHealth,_ 6 AS DNA.MaxHealth,_ 8 AS DNA.TotHealth,_ 5 AS DNA.NoElectronic,_ 4 AS DNA.MinElectronic,_ 6 AS DNA.MaxElectronic,_ 8 AS DNA.TotElectronic,_ 5 AS DNA.NoFastfood,_ 4 AS DNA.MinFastfood,_ 6 AS DNA.MaxFastfood,_ 8 AS DNA.TotFastfood,_ 5 AS DNA.NoTaxi,_ 4 AS DNA.MinTaxi,_ 6 AS DNA.MaxTaxi,_ 8 AS DNA.TotTaxi,_ 5 AS DNA.NoCarRepair,_ 4 AS DNA.MinCarRepair,_ 6 AS DNA.MaxRepair,_ 8 AS DNA.TotCarRepair,_ 5 AS DNA.NoTickets,_ 4 AS DNA.MinTickets,_ 6 AS DNA.MaxTickets,_ 8 AS DNA.TotTickets,_ 5 AS DNA.NoTrain,_ 4 AS DNA.MinTrain,_ 6 AS DNA.MaxTrain,_ 8 AS DNA.TotTrain,_ 5 AS DNA.NoEdu,_ 4 AS DNA.MinEdu,_ 6 AS DNA.MaxEdu,_ 8 AS DNA.TotEdu,_ 5 AS DNA.NoDirect,_ 4 AS DNA.MinDirect,_ 6 AS DNA.MaxDirect,_ 8 AS DNA.TotDirect,_ 5 AS DNA.NoGames,_ 4 AS DNA.MinGames,_ 6 AS DNA.MaxGames,_ 8 AS DNA.TotGames,_ 5 AS DNA.NoPost,_ 4 AS DNA.MinPost,_ 6 AS DNA.MaxPost,_ 8 AS DNA.TotPost,_ 5 AS DNA.NoGambling,_ 4 AS DNA.MinGambling,_ 6 AS DNA.MaxGambling,_ 8 AS DNA.TotGambling,_ 5 AS DNA.No50km,_ 4 AS DNA.Min50km,_ 6 AS DNA.Max50km,_ 8 AS DNA.Tot50km,_ 5 AS DNA.No100km,_ 4 AS DNA.Min100km,_ 6 AS DNA.Max100km,_ 8 AS DNA.Tot100km,_ 5 AS DNA.No150km,_ 4 AS DNA.Min150km,_ 6 AS DNA.Max150km,_ 8 AS DNA.Tot150km,_ 5 AS DNA.No250km,_ 4 AS DNA.Min250km,_ 6 AS DNA.Max250km,_ 8 AS DNA.Tot250km,_ 5 AS DNA.No500km,_ 4 AS DNA.Min500km,_ 6 AS DNA.Max500km,_ 8 AS DNA.Tot500km,_ 5 AS DNA.No1000km,_ 4 AS DNA.Min1000km,_ 6 AS DNA.Max1000km,_ 8 AS DNA.Tot1000km,_ 5 AS DNA.No2000km,_ 4 AS DNA.Min2000km,_ 6 AS DNA.Max2000km,_ 8 AS DNA.Tot2000km,_ 5 AS DNA.No3000km,_ 4 AS DNA.Min3000km,_ 6 AS DNA.Max3000km,_ 8 AS DNA.Tot3000km,_ 5 AS DNA.No5000km,_ 4 AS DNA.Min5000km,_ 6 AS DNA.Max5000km,_ 8 AS DNA.Tot5000km,_ 5 AS DNA.NoFar,_ 4 AS DNA.MinFar,_ 6 AS DNA.MaxFar,_ 8 AS DNA.TotFar,_ 5 AS DNA.NoOther,_ 4 AS DNA.MinOther,_ 6 AS DNA.MaxOther,_ 8 AS DNA.TotOther,_ 5 AS DNA.NoClassy,_ 4 AS DNA.MinClassy,_ 6 AS DNA.MaxClassy,_ 8 AS DNA.TotClassy,_ 5 AS DNA.NoBusiness,_ 4 AS DNA.MinBusiness,_ 6 AS DNA.MaxBusiness,_ 8 AS DNA.TotBusiness,_ 5 AS DNA.NoConstruction,_ 4 AS DNA.MinConstruction,_ 6 AS DNA.MaxConstruction,_ 8 AS DNA.TotConstruction,_ 5 AS DNA.NoInsurance,_ 4 AS DNA.MinInsurance,_ 6 AS DNA.MaxInsurance,_ 8 AS DNA.TotInsurance,_ 5 AS DNA.NoGov,_ 4 AS DNA.MinGov,_ 6 AS DNA.MaxGov,_ 8 AS DNA.TotGov,_ 5 AS DNA.NoTransport,_ 4 AS DNA.MinTransport,_ 6 AS DNA.MaxTransport,_ 8 AS DNA.TotTransport,_ 5 AS DNA.NoJewellery,_ 4 AS DNA.MinJewellery,_ 6 AS DNA.MaxJewellery,_ 8 AS DNA.TotJewellery,_ 5 AS DNA.NoLifeStyle,_ 4 AS DNA.MinLifeStyle,_ 6 AS DNA.MaxLifeStyle,_ 8 AS DNA.TotLifeStyle,_ 5 AS DNA.NoVehicle,_ 4 AS DNA.MinVehicle,_ 6 AS DNA.MaxVehicle,_ 8 AS DNA.TotVehicle,_ 5 AS DNA.NoGames,_ 4 AS DNA.MinGames,_ 6 AS DNA.MaxGames,_ 8 AS DNA.TotGames,_ 5 AS DNA.NoDigital,_ 4 AS DNA.MinDigital,_ 6 AS DNA.MaxDigital,_ 8 AS DNA.TotDigital,_ 5 AS DNA.NoSports,_ 4 AS DNA.MinSports,_ 6 AS DNA.MaxSports,_ 8 AS DNA.TotSports,_ 5 AS DNA.NoRealEstate,_ 4 AS DNA.MinRealEstate,_ 6 AS DNA.MaxRealEstate,_ 8 AS DNA.TotRealEstate,_ 76 AS DNA.RNA$
END SUB
|
|
|
Post by cryptomen on Mar 13, 2024 3:02:33 GMT -5
The field which is not written is DNA.RNA$. Other fields are getting written. However, if I run the same with LBB it DNA.RNA$ is properly written.
This is not a complicated code. Reading a CSV file containing credit card transactions and building statistics of card users in a RAF with a SELECT CASE statement to update usage in different merchant categories.
Nothing fancy. Nothing esoteric like recursive function calls etc. Just find the category, number of transactions, min, max, total for each category and add a letter code to DNA.RNA$ of the categories this person used before if it is not already added before. Once this is trained to this DNA.RNA$ we will be able to know quickly with INSTR function if this person ever used his/her card in this category or not, if yes we will check min, max, average quickly to detect spending pattern anomalies.
DIM LATLON(99999,2) CALL LOADZIPTABLE GLOBAL PI: PI=22.0/7.0
DIM MCCX$(9999,2) CALL LOADMCCTABLE
CALL INITUSERS
PRINT DATE$(),TIME$()
CALL CONSTRUCTDNA
PRINT DATE$(),TIME$()
PRINT "*END*"
END
'==============================================================================================================
FUNCTION distance( ZIP1, ZIP2 )
IF ZIP1=ZIP2 THEN distance=0 ELSE
IF ZIP1<1000 OR ZIP2<1000 THEN distance=10000 ELSE
'PRINT ZIP1,LATLON(ZIP1,1),LATLON(ZIP1,2),ZIP2,LATLON(ZIP2,1),LATLON(ZIP2,2) lat1=LATLON( ZIP1, 1 )*0.0174533 'convert degrees to radians lon1=LATLON( ZIP1, 2 )*0.0174533
lat2=LATLON( ZIP2, 1 )*0.0174533 lon2=LATLON( ZIP2, 2 )*0.0174533
x=sin(lat1)*sin(lat2)+cos(lat1)*cos(lat2)*cos(lon2-lon1) distance=acs(x)*6371 END IF END IF END FUNCTION
SUB LOADZIPTABLE
OPEN "FULLZIP-C.CSV" FOR INPUT AS #ZIP LINE INPUT #ZIP,H$ PRINT "LOADING ZIPCODES" WHILE NOT(EOF(#ZIP)) INPUTCSV #ZIP,ZIPCODE,LAT,LON 'INPUTCSV #ZIP,ZIPCODE,ZIPType$,CityName$,CityType$,CountyName$,CountyFIPS$,StateName$,StateAbbr$,StateFIPS$,MSACode$,AreaCode$,TimeZone$,UTC$,DST$,LAT,LON LATLON( ZIPCODE,1)=LAT LATLON( ZIPCODE,2)=LON WEND PRINT "ZICODES LOADED." CLOSE #ZIP
END SUB
SUB LOADMCCTABLE
OPEN "MCC.CSV" FOR INPUT AS #MCC 'rec$=inputto$(#sample,LF$) PRINT "LOADING MCCS" WHILE NOT(EOF(#MCC)) INPUTCSV #MCC,MCC$,DESC1$,DESC2$,SHORT$,GROUP$,CLASS$ MCCX$(VAL(MCC$),1)=LEFT$(UPPER$(DESC1$),40)+SPACE$(40-LEN(DESC1$)) MCCX$(VAL(MCC$),2)=LEFT$(UPPER$(CLASS$),20) 'print #fixed,MCC$;",";UPPER$(DESC1$);",";UPPER$(DESC2$);",";UPPER$(SHORT$);",";UPPER$(GROUP$);",";UPPER$(CLASS$) IF LEN(MCC$)<3 THEN EXIT WHILE 'PRINT MCC$;" ";MCCX$(VAL(MCC$),1),MCCX$(VAL(MCC$),2) WEND PRINT "MCCS LOADED" CLOSE #MCC
END SUB
'===========================================================================
SUB INITUSERS
LF$=CHR$(10) CTR=0 FN=1
OPEN "sd254_users.csv" FOR INPUT AS #users LINE INPUT #users,header$
CALL OPENDNA
PRINT "INITIALIZING USER TABLE"
WHILE NOT(EOF(#users)) INPUT #users,Name$,CurrentAge$,RetirementAge$,BirthYear$,BirthMonth$,Gender$,Address$,Apartment$,City$,State$,Zipcode$,Latitude$,Longitude$,PerCapitaIncomeZipcode$,YearlyIncomePerson$,TotalDebt$,FICOScore$,NumCreditCards$ ' Print Name$+SPACE$(21-LEN(Name$));CurrentAge$;" ";LEFT$(Gender$,1);" ";City$+SPACE$(31-LEN(City$));FICOScore$ DNA.Name$ = UPPER$(LEFT$(Name$,30)) DNA.CurrentAge = VAL(CurrentAge$) DNA.RetirementAge = VAL(RetirementAge$) DNA.BirthYear = VAL(BirthYear$) DNA.BirthMonth = VAL(BirthMonth$) DNA.Gender$ = LEFT$(Gender$,1) DNA.Address$ = UPPER$(LEFT$(Address$,30)) DNA.Apartment$ = UPPER$(LEFT$(Apartment$,10)) DNA.City$ = UPPER$(LEFT$(City$,32)) DNA.State$ = UPPER$(LEFT$(State$,2)) DNA.Zipcode$ = Zipcode$ DNA.Latitude = VAL(Latitude$) DNA.Longitude = VAL(Longitude$) DNA.PerCapitaIncomeZipcode = VAL(MID$(PerCapitaIncomeZipcode$,2)) DNA.YearlyIncomePerson = VAL(MID$(YearlyIncomePerson$,2)) DNA.TotalDebt = VAL(MID$(TotalDebt$,2)) DNA.FICOScore = VAL(FICOScore$) DNA.NumCreditCards = VAL(NumCreditCards$)
DNA.LastTxDateTime$="197001010000" DNA.LastTxZIP$="00000" DNA.LastTxAmt=0 DNA.LastMCC=9999 DNA.NoForn=0 DNA.MinForn=99999 DNA.MaxForn=0 DNA.TotForn=0 DNA.NoHotel=0 DNA.MinHotel=99999 DNA.MaxHotel=0 DNA.TotHotel=0 DNA.NoFuel=0 DNA.MinFuel=99999 DNA.MaxFuel=0 DNA.TotFuel=0 DNA.NoRentaCar=0 DNA.MinRentaCar=99999 DNA.MaxRentaCar=0 DNA.TotRentaCar=0 DNA.NoOnline=0 DNA.MinOnline=99999 DNA.MaxOnline=0 DNA.TotOnline=0 DNA.NoMarket=0 DNA.MinMarket=99999 DNA.MaxMarket=0 DNA.TotMarket=0 DNA.NoCloth=0 DNA.MinCloth=99999 DNA.MaxCloth=0 DNA.TotCloth=0 DNA.NoPharmacy=0 DNA.MinPharmacy=99999 DNA.MaxPharmacy=0 DNA.TotPharmacy=0 DNA.NoCash=0 DNA.MinCash=99999 DNA.MaxCash=0 DNA.TotCash=0 DNA.NoUtility=0 DNA.MinUtility=99999 DNA.MaxUtility=0 DNA.TotUtility=0 DNA.NoAirline=0 DNA.MinAirline=99999 DNA.MaxAirline=0 DNA.TotAirline=0 DNA.NoTelecom=0 DNA.MinTelecom=99999 DNA.MaxTelecom=0 DNA.TotTelecom=0 DNA.NoBar=0 DNA.MinBar=99999 DNA.MaxBar=0 DNA.TotBar=0 DNA.NoRest=0 DNA.MinRest=99999 DNA.MaxRest=0 DNA.TotRest=0 DNA.NoRisky=0 DNA.MinRisky=99999 DNA.MaxRisky=0 DNA.TotRisky=0 DNA.NoHealth=0 DNA.MinHealth=99999 DNA.MaxHealth=0 DNA.TotHealth=0 DNA.NoElectronic=0 DNA.MinElectronic=99999 DNA.MaxElectronic=0 DNA.TotElectronic=0 DNA.NoFastfood=0 DNA.MinFastfood=99999 DNA.MaxFastfood=0 DNA.TotFastfood=0 DNA.NoTaxi=0 DNA.MinTaxi=99999 DNA.MaxTaxi=0 DNA.TotTaxi=0 DNA.NoCarRepair=0 DNA.MinCarRepair=99999 DNA.MaxCarRepair=0 DNA.TotCarRepair=0 DNA.NoTickets=0 DNA.MinTickets=99999 DNA.MaxTickets=0 DNA.TotTickets=0 DNA.NoTrain=0 DNA.MinTrain=99999 DNA.MaxTrain=0 DNA.TotTrain=0 DNA.NoEdu=0 DNA.MinEdu=99999 DNA.MaxEdu=0 DNA.TotEdu=0 DNA.NoDirect=0 DNA.MinDirect=99999 DNA.MaxDirect=0 DNA.TotDirect=0 DNA.NoGames=0 DNA.MinGames=99999 DNA.MaxGames=0 DNA.TotGames=0 DNA.NoPost=0 DNA.MinPost=99999 DNA.MaxPost=0 DNA.TotPost=0 DNA.NoGambling=0 DNA.MinGambling=99999 DNA.MaxGambling=0 DNA.TotGambling=0 DNA.No50km=0 DNA.Min50km=99999 DNA.Max50km=0 DNA.Tot50km=0 DNA.No100km=0 DNA.Min100km=99999 DNA.Max100km=0 DNA.Tot100km=0 DNA.No150km=0 DNA.Min150km=99999 DNA.Max150km=0 DNA.Tot150km=0 DNA.No250km=0 DNA.Min250km=99999 DNA.Max250km=0 DNA.Tot250km=0 DNA.No500km=0 DNA.Min500km=99999 DNA.Max500km=0 DNA.Tot500km=0 DNA.No1000km=0 DNA.Min1000km=99999 DNA.Max1000km=0 DNA.Tot1000km=0 DNA.No2000km=0 DNA.Min2000km=99999 DNA.Max2000km=0 DNA.Tot2000km=0 DNA.No3000km=0 DNA.Min3000km=99999 DNA.Max3000km=0 DNA.Tot3000km=0 DNA.No5000km=0 DNA.Min5000km=99999 DNA.Max5000km=0 DNA.Tot5000km=0 DNA.NoFar=0 DNA.MinFar=99999 DNA.MaxFar=0 DNA.TotFar=0 DNA.NoOther=0 DNA.MinOther=99999 DNA.MaxOther=0 DNA.TotOther=0 DNA.NoClassy=0 DNA.MinClassy=99999 DNA.MaxClassy=0 DNA.TotClassy=0 DNA.NoBusiness=0 DNA.MinBusiness=99999 DNA.MaxBusiness=0 DNA.TotBusiness=0 DNA.NoConstruction=0 DNA.MinConstruction=99999 DNA.MaxConstruction=0 DNA.TotConstruction=0 DNA.NoInsurance=0 DNA.MinInsurance=99999 DNA.MaxInsurance=0 DNA.TotInsurance=0 DNA.NoJewellery=0 DNA.MinJewellery=99999 DNA.MaxJewellery=0 DNA.TotJewellery=0 DNA.NoGov=0 DNA.MinGov=99999 DNA.MaxGov=0 DNA.TotGov=0 DNA.NoTransport=0 DNA.MinTransport=99999 DNA.MaxTransport=0 DNA.TotTransport=0
DNA.NoLifeStyle=0 DNA.MinLifeStyle=99999 DNA.MaxLifeStyle=0 DNA.TotLifeStyle=0
DNA.NoVehicle=0 DNA.MinVehicle=99999 DNA.MaxVehicle=0 DNA.TotVehicle=0
DNA.NoGames=0 DNA.MinGames=99999 DNA.MaxGames=0 DNA.TotGames=0 DNA.NoDigital=0 DNA.MinDigital=99999 DNA.MaxDigital=0 DNA.TotDigital=0 DNA.NoSports=0 DNA.MinSports=99999 DNA.MaxSports=0 DNA.TotSports=0 DNA.NoRealEstate=0 DNA.MinRealEstate=99999 DNA.MaxRealEstate=0 DNA.TotRealEstate=0 DNA.RNA$=""
CTR=CTR+1 PUT #dna,CTR
WEND
CLOSE #users CLOSE #dna
PRINT "USERS INITIALIZED"
END SUB
SUB OPENDNA
OPEN "DNA.RND" FOR RANDOM AS #dna LEN=1426 FIELD #dna,_ 30 AS DNA.Name$,_ 2 AS DNA.CurrentAge,_ 2 AS DNA.RetirementAge,_ 4 AS DNA.BirthYear,_ 2 AS DNA.BirthMonth,_ 1 AS DNA.Gender$,_ 30 AS DNA.Address$,_ 10 AS DNA.Apartment$,_ 20 AS DNA.City$,_ 2 AS DNA.State$,_ 5 AS DNA.Zipcode$,_ 6 AS DNA.Latitude,_ 6 AS DNA.Longitude,_ 8 AS DNA.PerCapitaIncomeZipcode,_ 8 AS DNA.YearlyIncomePerson,_ 8 AS DNA.TotalDebt,_ 3 AS DNA.FICOScore,_ 2 AS DNA.NumCreditCards,_ 12 AS DNA.LastTxDateTime$,_ 5 AS DNA.LastTxZIP$,_ 10 AS DNA.LastTxAmt,_ 4 AS DNA.LastMCC,_ 5 AS DNA.NoForn,_ 4 AS DNA.MinForn,_ 6 AS DNA.MaxForn,_ 8 AS DNA.TotForn,_ 5 AS DNA.NoHotel,_ 4 AS DNA.MinHotel,_ 6 AS DNA.MaxHotel,_ 8 AS DNA.TotHotel,_ 5 AS DNA.NoFuel,_ 3 AS DNA.MinFuel,_ 4 AS DNA.MaxFuel,_ 8 AS DNA.TotFuel,_ 5 AS DNA.NoRentaCar,_ 4 AS DNA.MinRentaCar,_ 6 AS DNA.MaxRentaCar,_ 8 AS DNA.TotRentaCar,_ 5 AS DNA.NoOnline,_ 4 AS DNA.MinOnline,_ 6 AS DNA.MaxOnline,_ 8 AS DNA.TotOnline,_ 5 AS DNA.NoMarket,_ 4 AS DNA.MinMarket,_ 6 AS DNA.MaxMarket,_ 8 AS DNA.TotMarket,_ 5 AS DNA.NoCloth,_ 4 AS DNA.MinCloth,_ 6 AS DNA.MaxCloth,_ 8 AS DNA.TotCloth,_ 5 AS DNA.NoPharmacy,_ 4 AS DNA.MinPharmacy,_ 6 AS DNA.MaxPharmacy,_ 8 AS DNA.TotPharmacy,_ 5 AS DNA.NoCash,_ 4 AS DNA.MinCash,_ 6 AS DNA.MaxCash,_ 8 AS DNA.TotCash,_ 5 AS DNA.NoUtility,_ 4 AS DNA.MinUtility,_ 6 AS DNA.MaxUtility,_ 8 AS DNA.TotUtility,_ 5 AS DNA.NoAirline,_ 4 AS DNA.MinAirline,_ 6 AS DNA.MaxAirline,_ 8 AS DNA.TotAirline,_ 5 AS DNA.NoTelecom,_ 4 AS DNA.MinTelecom,_ 6 AS DNA.MaxTelecom,_ 8 AS DNA.TotTelecom,_ 5 AS DNA.NoBar,_ 4 AS DNA.MinBar,_ 6 AS DNA.MaxBar,_ 8 AS DNA.TotBar,_ 5 AS DNA.NoRest,_ 4 AS DNA.MinRest,_ 6 AS DNA.MaxRest,_ 8 AS DNA.TotRest,_ 5 AS DNA.NoRisky,_ 4 AS DNA.MinRisky,_ 6 AS DNA.MaxRisky,_ 8 AS DNA.TotRisky,_ 5 AS DNA.NoHealth,_ 4 AS DNA.MinHealth,_ 6 AS DNA.MaxHealth,_ 8 AS DNA.TotHealth,_ 5 AS DNA.NoElectronic,_ 4 AS DNA.MinElectronic,_ 6 AS DNA.MaxElectronic,_ 8 AS DNA.TotElectronic,_ 5 AS DNA.NoFastfood,_ 4 AS DNA.MinFastfood,_ 6 AS DNA.MaxFastfood,_ 8 AS DNA.TotFastfood,_ 5 AS DNA.NoTaxi,_ 4 AS DNA.MinTaxi,_ 6 AS DNA.MaxTaxi,_ 8 AS DNA.TotTaxi,_ 5 AS DNA.NoCarRepair,_ 4 AS DNA.MinCarRepair,_ 6 AS DNA.MaxRepair,_ 8 AS DNA.TotCarRepair,_ 5 AS DNA.NoTickets,_ 4 AS DNA.MinTickets,_ 6 AS DNA.MaxTickets,_ 8 AS DNA.TotTickets,_ 5 AS DNA.NoTrain,_ 4 AS DNA.MinTrain,_ 6 AS DNA.MaxTrain,_ 8 AS DNA.TotTrain,_ 5 AS DNA.NoEdu,_ 4 AS DNA.MinEdu,_ 6 AS DNA.MaxEdu,_ 8 AS DNA.TotEdu,_ 5 AS DNA.NoDirect,_ 4 AS DNA.MinDirect,_ 6 AS DNA.MaxDirect,_ 8 AS DNA.TotDirect,_ 5 AS DNA.NoGames,_ 4 AS DNA.MinGames,_ 6 AS DNA.MaxGames,_ 8 AS DNA.TotGames,_ 5 AS DNA.NoPost,_ 4 AS DNA.MinPost,_ 6 AS DNA.MaxPost,_ 8 AS DNA.TotPost,_ 5 AS DNA.NoGambling,_ 4 AS DNA.MinGambling,_ 6 AS DNA.MaxGambling,_ 8 AS DNA.TotGambling,_ 5 AS DNA.No50km,_ 4 AS DNA.Min50km,_ 6 AS DNA.Max50km,_ 8 AS DNA.Tot50km,_ 5 AS DNA.No100km,_ 4 AS DNA.Min100km,_ 6 AS DNA.Max100km,_ 8 AS DNA.Tot100km,_ 5 AS DNA.No150km,_ 4 AS DNA.Min150km,_ 6 AS DNA.Max150km,_ 8 AS DNA.Tot150km,_ 5 AS DNA.No250km,_ 4 AS DNA.Min250km,_ 6 AS DNA.Max250km,_ 8 AS DNA.Tot250km,_ 5 AS DNA.No500km,_ 4 AS DNA.Min500km,_ 6 AS DNA.Max500km,_ 8 AS DNA.Tot500km,_ 5 AS DNA.No1000km,_ 4 AS DNA.Min1000km,_ 6 AS DNA.Max1000km,_ 8 AS DNA.Tot1000km,_ 5 AS DNA.No2000km,_ 4 AS DNA.Min2000km,_ 6 AS DNA.Max2000km,_ 8 AS DNA.Tot2000km,_ 5 AS DNA.No3000km,_ 4 AS DNA.Min3000km,_ 6 AS DNA.Max3000km,_ 8 AS DNA.Tot3000km,_ 5 AS DNA.No5000km,_ 4 AS DNA.Min5000km,_ 6 AS DNA.Max5000km,_ 8 AS DNA.Tot5000km,_ 5 AS DNA.NoFar,_ 4 AS DNA.MinFar,_ 6 AS DNA.MaxFar,_ 8 AS DNA.TotFar,_ 5 AS DNA.NoOther,_ 4 AS DNA.MinOther,_ 6 AS DNA.MaxOther,_ 8 AS DNA.TotOther,_ 5 AS DNA.NoClassy,_ 4 AS DNA.MinClassy,_ 6 AS DNA.MaxClassy,_ 8 AS DNA.TotClassy,_ 5 AS DNA.NoBusiness,_ 4 AS DNA.MinBusiness,_ 6 AS DNA.MaxBusiness,_ 8 AS DNA.TotBusiness,_ 5 AS DNA.NoConstruction,_ 4 AS DNA.MinConstruction,_ 6 AS DNA.MaxConstruction,_ 8 AS DNA.TotConstruction,_ 5 AS DNA.NoInsurance,_ 4 AS DNA.MinInsurance,_ 6 AS DNA.MaxInsurance,_ 8 AS DNA.TotInsurance,_ 5 AS DNA.NoGov,_ 4 AS DNA.MinGov,_ 6 AS DNA.MaxGov,_ 8 AS DNA.TotGov,_ 5 AS DNA.NoTransport,_ 4 AS DNA.MinTransport,_ 6 AS DNA.MaxTransport,_ 8 AS DNA.TotTransport,_ 5 AS DNA.NoJewellery,_ 4 AS DNA.MinJewellery,_ 6 AS DNA.MaxJewellery,_ 8 AS DNA.TotJewellery,_ 5 AS DNA.NoLifeStyle,_ 4 AS DNA.MinLifeStyle,_ 6 AS DNA.MaxLifeStyle,_ 8 AS DNA.TotLifeStyle,_ 5 AS DNA.NoVehicle,_ 4 AS DNA.MinVehicle,_ 6 AS DNA.MaxVehicle,_ 8 AS DNA.TotVehicle,_ 5 AS DNA.NoGames,_ 4 AS DNA.MinGames,_ 6 AS DNA.MaxGames,_ 8 AS DNA.TotGames,_ 5 AS DNA.NoDigital,_ 4 AS DNA.MinDigital,_ 6 AS DNA.MaxDigital,_ 8 AS DNA.TotDigital,_ 5 AS DNA.NoSports,_ 4 AS DNA.MinSports,_ 6 AS DNA.MaxSports,_ 8 AS DNA.TotSports,_ 5 AS DNA.NoRealEstate,_ 4 AS DNA.MinRealEstate,_ 6 AS DNA.MaxRealEstate,_ 8 AS DNA.TotRealEstate,_ 76 AS DNA.RNA$
END SUB
FUNCTION ADDER( AM, NO, BYREF MN, BYREF MX, BYREF TOT ) IF AM<MN AND AM>0 THEN MN=AM IF AM>MX THEN MX=AM TOT=TOT+AM ADDER=NO+1 END FUNCTION
SUB CONSTRUCTDNA
FOR FKTR=1 TO 5
PRINT "PROCESSING FILE ";FKTR;" ";TIME$()
F$=STR$(FKTR) SEQ$=LEFT$("00000",5-LEN(F$))+F$ OPEN "TXHUMAN"+SEQ$+".CSV" FOR INPUT AS #trans
CALL OPENDNA
LINE INPUT #trans,X$
K=0
WHILE NOT(EOF(#trans))
INPUTCSV #trans,TxNo$,User$,CardIndex$,TxDate$,TxTime$,Amount$,UseType$,MerchantName$,MerchantCity$,MerchantState$,ZIP$,MCC$,Errors$,IsFraud$
K=K+1
'IF K>30 THEN EXIT WHILE
IF (K MOD 10000)=0 THEN PRINT K,TIME$()
CTR=VAL(User$)+1
GETTRIM #dna,CTR
DISTANCE=INT(distance(VAL(DNA.Zipcode$),VAL(ZIP$)))
DNA.LastTxDateTime$=TxDate$+TxTime$ DNA.LastTxZIP$=ZIP$ AMX=VAL(Amount$) MCX=VAL(MCC$) DNA.LastTxAmt=AMX DNA.LastMCC=MCX
IF ZIP$="FORGN" THEN DNA.NoForn=ADDER(AMX,DNA.NoForn,DNA.MinForn,DNA.MaxForn,DNA.TotForn)
IF MerchantCity$="ONLINE" THEN DNA.NoOnline=ADDER(AMX,DNA.NoOnline,DNA.MinOnline,DNA.MaxOnline,DNA.TotOnline)
C.TRAIT$=MCCX$(VAL(MCC$),2)
'CHARACTER.TRAIT$=MID$(RTR$,K,1)
PRINT K,User$," ";DNA.Name$;" THIS ";C.TRAIT$;" BEFORE [";DNA.RNA$;"] ";
X$=CONSTRUCT.RNA$( C.TRAIT$,DNA.RNA$ )
DNA.RNA$=X$
PRINT "AFTER [";DNA.RNA$;"]" 'IF LEN(DNA.RNA$)>1 sTHEN PRINT User$," ";DNA.Name$;" ";DNA.RNA$
SELECT CASE C.TRAIT$
CASE "O" ' HOTELS DNA.NoHotel=ADDER(AMX,DNA.NoHotel,DNA.MinHotel,DNA.MaxHotel,DNA.TotHotel)
CASE "Q" ' RENT A VEHICLE DNA.NoRentaCar=ADDER(AMX,DNA.NoRentaCar,DNA.MinRentaCar,DNA.MaxRentaCar,DNA.TotRentaCar)
CASE "F" ' FUEL DNA.NoFuel=ADDER(AMX,DNA.NoFuel,DNA.MinFuel,DNA.MaxFuel,DNA.TotFuel)
CASE "M" ' MARKET DNA.NoMarket=ADDER(AMX,DNA.NoMarket,DNA.MinMarket,DNA.MaxMarket,DNA.TotMarket)
CASE ">" ' FUEL DNA.NoFuel=ADDER(AMX,DNA.NoFuel,DNA.MinFuel,DNA.MaxFuel,DNA.TotFuel)
CASE "F" ' FASHION CLOTHING SHOES ACCESORIES DNA.NoCloth=ADDER(AMX,DNA.NoCloth,DNA.MinCloth,DNA.MaxCloth,DNA.TotCloth)
CASE "P" ' PHARMACY DNA.NoPharmacy=ADDER(AMX,DNA.NoPharmacy,DNA.MinPharmacy,DNA.MaxPharmacy,DNA.TotPharmacy)
CASE "X" ' CASH ATM MONEY XFER DNA.NoCash=ADDER(AMX,DNA.NoCash,DNA.MinCash,DNA.MaxCash,DNA.TotCash)
CASE "~" ' UTILITY DNA.NoUtility=ADDER(AMX,DNA.NoUtility,DNA.MinUtility,DNA.MaxUtility,DNA.TotUtility)
CASE "C" ' TELECOM PAYTV INTERNET MOBILE DNA.NoTelecom=ADDER(AMX,DNA.NoTelecom,DNA.MinTelecom,DNA.MaxTelecom,DNA.TotTelecom)
CASE "A" ' AIRLINES DNA.NoAirline=ADDER(AMX,DNA.NoAirline,DNA.MinAirline,DNA.MaxAirline,DNA.TotAirline)
CASE "b" ' BARS DNA.NoBar=ADDER(AMX,DNA.NoBar,DNA.MinBar,DNA.MaxBar,DNA.TotBar)
CASE "R" ' BARS AND TAVERNS DNA.NoRest=ADDER(AMX,DNA.NoRest,DNA.MinRest,DNA.MaxRest,DNA.TotRest)
CASE "Z" ' RISKY DNA.NoRisky=ADDER(AMX,DNA.NoRisky,DNA.MinRisky,DNA.MaxRisky,DNA.TotRisky)
CASE "R" ' BARS AND TAVERNS DNA.NoRest=ADDER(AMX,DNA.NoRest,DNA.MinRest,DNA.MaxRest,DNA.TotRest)
CASE "H" ' HEALTH DNA.NoHealth=ADDER(AMX,DNA.NoHealth,DNA.MinHealth,DNA.MaxHealth,DNA.TotHealth)
CASE "E" ' ELECTRONIC DNA.NoElectronic=ADDER(AMX,DNA.NoElectronic,DNA.MinElectronic,DNA.MaxElectronic,DNA.TotElectronic)
CASE ":" ' FAST FOOD DNA.NoFastfood=ADDER(AMX,DNA.NoFastfood,DNA.MinFastfood,DNA.MaxFastfood,DNA.TotFastfood)
CASE "/" ' TAXI DNA.NoTaxi=ADDER(AMX,DNA.NoTaxi,DNA.MinTaxi,DNA.MaxTaxi,DNA.TotTaxi)
CASE "#" ' CAR REPAIR TOWING PAINT DNA.NoCarRepair=ADDER(AMX,DNA.NoCarRepair,DNA.MinCarRepair,DNA.MaxCarRepair,DNA.TotCarRepair)
CASE "V" ' VEHICLE DNA.NoVehicle=ADDER(AMX,DNA.NoVehicle,DNA.MinVehicle,DNA.MaxVehicle,DNA.TotVehicle)
CASE "!" ' THEATRE CINEMA TICKETS DNA.NoTickets=ADDER(AMX,DNA.NoTickets,DNA.MinTickets,DNA.MaxTickets,DNA.TotTickets)
CASE "^" ' TRAIN DNA.NoTrain=ADDER(AMX,DNA.NoTrain,DNA.MinTrain,DNA.MaxTrain,DNA.TotTrain)
CASE "U" ' EDUCATION DNA.NoEdu=ADDER(AMX,DNA.NoEdu,DNA.MinEdu,DNA.MaxEdu,DNA.TotEdu)
CASE "<" ' DIRECT MARKETING DNA.NoDirect=ADDER(AMX,DNA.NoDirect,DNA.MinDirect,DNA.MaxDirect,DNA.TotDirect)
CASE "G" ' GAMES DNA.NoGames=ADDER(AMX,DNA.NoGames,DNA.MinGames,DNA.MaxGames,DNA.TotGames)
CASE "|" ' BETTING GAMBLING DNA.NoGambling=ADDER(AMX,DNA.NoGambling,DNA.MinGambling,DNA.MaxGambling,DNA.TotGambling)
CASE "@" ' POST COURIER CARGO DNA.NoPost=ADDER(AMX,DNA.NoPost,DNA.MinPost,DNA.MaxPost,DNA.TotPost)
CASE "S" ' SPORTS DNA.Sports=ADDER(AMX,DNA.NoSports,DNA.MinSports,DNA.MaxSports,DNA.TotSports)
CASE "*" ' REAL ESTATE DNA.RealEstate=ADDER(AMX,DNA.NoRealEstate,DNA.MinRealEstate,DNA.MaxRealEstate,DNA.TotRealEstate)
CASE "D" ' DIGITAL DNA.NoDigital=ADDER(AMX,DNA.NoDigital,DNA.MinDigital,DNA.MaxDigital,DNA.TotDigital)
CASE "B" ' BUSINESS DNA.NoBusiness=ADDER(AMX,DNA.NoBusiness,DNA.MinBusiness,DNA.MaxBusiness,DNA.TotBusiness)
CASE "Y" ' CLASSY LUXURY UPPER CLASS DNA.NoClassy=ADDER(AMX,DNA.NoClassy,DNA.MinClassy,DNA.MaxClassy,DNA.TotClassy)
CASE "K" ' CONSTRUCTION DNA.NoConstruction=ADDER(AMX,DNA.NoConstruction,DNA.MinConstruction,DNA.MaxConstruction,DNA.TotConstruction)
CASE "J" ' JEWELLERY DNA.NoJewellery=ADDER(AMX,DNA.NoJewellery,DNA.MinJewellery,DNA.MaxJewellery,DNA.TotJewellery)
CASE "T" ' TRANSPORTATION DNA.NoTransport=ADDER(AMX,DNA.NoTransport,DNA.MinTransport,DNA.MaxTransport,DNA.TotTransport)
CASE "I" ' INSURANCE DNA.NoInsurance=ADDER(AMX,DNA.NoInsurance,DNA.MinInsurance,DNA.MaxInsurance,DNA.TotInsurance)
CASE "%" ' GOVERNMENT DNA.NoGov=ADDER(AMX,DNA.NoGov,DNA.MinGov,DNA.MaxGov,DNA.TotGov)
CASE "L" ' LIFE STYLE DNA.NoLifeStyle=ADDER(AMX,DNA.NoLifeStyle,DNA.MinLifeStyle,DNA.MaxLifeStyle,DNA.TotLifeStyle)
CASE ELSE
DNA.NoOther=ADDER(AMX,DNA.NoOther,DNA.MinOther,DNA.MaxOther,DNA.TotOther)
END SELECT
IF DISTANCE>0 AND DISTANCE<=50 THEN DNA.No50km=ADDER(AMX,DNA.No50km,DNA.Min50km,DNA.Max50km,DNA.Tot50km)
IF DISTANCE>50 AND DISTANCE<=100 THEN DNA.No100km=ADDER(AMX,DNA.No100km,DNA.Min100km,DNA.Max100km,DNA.Tot100km)
IF DISTANCE>100 AND DISTANCE<=150 THEN DNA.No150km=ADDER(AMX,DNA.No150km,DNA.Min150km,DNA.Max150km,DNA.Tot150km)
IF DISTANCE>150 AND DISTANCE<=250 THEN DNA.No250km=ADDER(AMX,DNA.No250km,DNA.Min250km,DNA.Max250km,DNA.Tot250km)
IF DISTANCE>250 AND DISTANCE<=500 THEN DNA.No500km=ADDER(AMX,DNA.No500km,DNA.Min500km,DNA.Max500km,DNA.Tot500km)
IF DISTANCE>500 AND DISTANCE<=1000 THEN DNA.No1000km=ADDER(AMX,DNA.No1000km,DNA.Min1000km,DNA.Max1000km,DNA.Tot1000km)
IF DISTANCE>1000 AND DISTANCE<=2000 THEN DNA.No2000km=ADDER(AMX,DNA.No2000km,DNA.Min2000km,DNA.Max2000km,DNA.Tot2000km)
IF DISTANCE>2000 AND DISTANCE<=3000 THEN DNA.No3000km=ADDER(AMX,DNA.No3000km,DNA.Min3000km,DNA.Max3000km,DNA.Tot3000km)
IF DISTANCE>3000 AND DISTANCE<=5000 THEN DNA.No5000km=ADDER(AMX,DNA.No5000km,DNA.Min5000km,DNA.Max5000km,DNA.Tot5000km)
IF DISTANCE>5000 THEN DNA.NoFar=ADDER(AMX,DNA.NoFar,DNA.MinFar,DNA.MaxFar,DNA.TotFar)
'***********
PUT #dna,CTR
WEND
CLOSE #trans CLOSE #dna
NEXT FKTR
PRINT "DNA CONSTRUCTED"
END SUB
FUNCTION CONSTRUCT.RNA$( TRAIT$, RNA$ )
IF NOT(INSTR( RNA$, TRAIT$ )) THEN CONSTRUCT.RNA$=RNA$+TRAIT$ ELSE CONSTRUCT.RNA$=RNA$
END FUNCTION
|
|
|
Post by tsh73 on Mar 13, 2024 4:14:00 GMT -5
Hello cryptomen I think I found the cause and it is indeed error in coding
See, DNA.RNA$ is string of 76 characters Then you GET it, you get "something " (padded by characters to 76 bytes) Now
FUNCTION CONSTRUCT.RNA$( TRAIT$, RNA$ )
IF NOT(INSTR( RNA$, TRAIT$ )) THEN CONSTRUCT.RNA$=RNA$+TRAIT$ ELSE CONSTRUCT.RNA$=RNA$
END FUNCTION adds TRAIT$ to that 76 bytes. You get "something A" (77 bytes) BUT then you PUT it back to a file it gets truncated to 76 bytes! So you get "something ", same 76 bytes Effectively DNA.RNA$ is not changed on disk.
Fix is to add Trim$
IF NOT(INSTR( RNA$, TRAIT$ )) THEN CONSTRUCT.RNA$=trim$(RNA$)+TRAIT$ ELSE CONSTRUCT.RNA$=RNA$
Only question left is why it work for you in LBB?
Code below works the same on me with JB 2.0 (should be == LB 4.x) and LBB 3.06 (it just works so I did not bothered to upgrade) same problem, same fix, no difference.
call OPENDNA
writeStuff=1 'comment that out so it will read existing file
'write DNA.Name$= "Peter" DNA.CurrentAge= 21 DNA.RNA$="AZTF" DNA.TotRealEstate=123456789 'too big, but it gets truncsted, ho harm done to DNA.RNA$
if writeStuff then put #dna, 1
DNA.Name$= "Pavel" DNA.CurrentAge= 27 DNA.RNA$="ZTFQWE" DNA.TotRealEstate=923456780
if writeStuff then put #dna, 2
'now get second data from file - strings padedd to spaces to field len get #dna, 2 C.TRAIT$="A" PRINT " BEFORE [";DNA.RNA$;"] "; 'and try to change it X$=CONSTRUCT.RNA$( C.TRAIT$,DNA.RNA$ )
DNA.RNA$=X$ PRINT "AFTER [";DNA.RNA$;"]" put #dna, 2
'problem is , letter added to padded end 'Then truncated to field length on put 'so field left unchanged
'read for i = 1 to 2 get #dna, i print i, DNA.Name$,DNA.CurrentAge,DNA.TotRealEstate,">";DNA.RNA$;"<" 'print i, DNA.Name$ next close #dna
run "notepad.exe ";DefaultDir$;"\DNA.RND" end '---------------------------
FUNCTION CONSTRUCT.RNA$( TRAIT$, RNA$ )
'IF NOT(INSTR( RNA$, TRAIT$ )) THEN CONSTRUCT.RNA$=RNA$+TRAIT$ ELSE CONSTRUCT.RNA$=RNA$ IF NOT(INSTR( RNA$, TRAIT$ )) THEN CONSTRUCT.RNA$=trim$(RNA$)+TRAIT$ ELSE CONSTRUCT.RNA$=RNA$
END FUNCTION
SUB OPENDNA
OPEN "DNA.RND" FOR RANDOM AS #dna LEN=1426 FIELD #dna,_ 30 AS DNA.Name$,_ 2 AS DNA.CurrentAge,_ 2 AS DNA.RetirementAge,_ 4 AS DNA.BirthYear,_ 2 AS DNA.BirthMonth,_ 1 AS DNA.Gender$,_ 30 AS DNA.Address$,_ 10 AS DNA.Apartment$,_ 20 AS DNA.City$,_ 2 AS DNA.State$,_ 5 AS DNA.Zipcode$,_ 6 AS DNA.Latitude,_ 6 AS DNA.Longitude,_ 8 AS DNA.PerCapitaIncomeZipcode,_ 8 AS DNA.YearlyIncomePerson,_ 8 AS DNA.TotalDebt,_ 3 AS DNA.FICOScore,_ 2 AS DNA.NumCreditCards,_ 12 AS DNA.LastTxDateTime$,_ 5 AS DNA.LastTxZIP$,_ 10 AS DNA.LastTxAmt,_ 4 AS DNA.LastMCC,_ 5 AS DNA.NoForn,_ 4 AS DNA.MinForn,_ 6 AS DNA.MaxForn,_ 8 AS DNA.TotForn,_ 5 AS DNA.NoHotel,_ 4 AS DNA.MinHotel,_ 6 AS DNA.MaxHotel,_ 8 AS DNA.TotHotel,_ 5 AS DNA.NoFuel,_ 3 AS DNA.MinFuel,_ 4 AS DNA.MaxFuel,_ 8 AS DNA.TotFuel,_ 5 AS DNA.NoRentaCar,_ 4 AS DNA.MinRentaCar,_ 6 AS DNA.MaxRentaCar,_ 8 AS DNA.TotRentaCar,_ 5 AS DNA.NoOnline,_ 4 AS DNA.MinOnline,_ 6 AS DNA.MaxOnline,_ 8 AS DNA.TotOnline,_ 5 AS DNA.NoMarket,_ 4 AS DNA.MinMarket,_ 6 AS DNA.MaxMarket,_ 8 AS DNA.TotMarket,_ 5 AS DNA.NoCloth,_ 4 AS DNA.MinCloth,_ 6 AS DNA.MaxCloth,_ 8 AS DNA.TotCloth,_ 5 AS DNA.NoPharmacy,_ 4 AS DNA.MinPharmacy,_ 6 AS DNA.MaxPharmacy,_ 8 AS DNA.TotPharmacy,_ 5 AS DNA.NoCash,_ 4 AS DNA.MinCash,_ 6 AS DNA.MaxCash,_ 8 AS DNA.TotCash,_ 5 AS DNA.NoUtility,_ 4 AS DNA.MinUtility,_ 6 AS DNA.MaxUtility,_ 8 AS DNA.TotUtility,_ 5 AS DNA.NoAirline,_ 4 AS DNA.MinAirline,_ 6 AS DNA.MaxAirline,_ 8 AS DNA.TotAirline,_ 5 AS DNA.NoTelecom,_ 4 AS DNA.MinTelecom,_ 6 AS DNA.MaxTelecom,_ 8 AS DNA.TotTelecom,_ 5 AS DNA.NoBar,_ 4 AS DNA.MinBar,_ 6 AS DNA.MaxBar,_ 8 AS DNA.TotBar,_ 5 AS DNA.NoRest,_ 4 AS DNA.MinRest,_ 6 AS DNA.MaxRest,_ 8 AS DNA.TotRest,_ 5 AS DNA.NoRisky,_ 4 AS DNA.MinRisky,_ 6 AS DNA.MaxRisky,_ 8 AS DNA.TotRisky,_ 5 AS DNA.NoHealth,_ 4 AS DNA.MinHealth,_ 6 AS DNA.MaxHealth,_ 8 AS DNA.TotHealth,_ 5 AS DNA.NoElectronic,_ 4 AS DNA.MinElectronic,_ 6 AS DNA.MaxElectronic,_ 8 AS DNA.TotElectronic,_ 5 AS DNA.NoFastfood,_ 4 AS DNA.MinFastfood,_ 6 AS DNA.MaxFastfood,_ 8 AS DNA.TotFastfood,_ 5 AS DNA.NoTaxi,_ 4 AS DNA.MinTaxi,_ 6 AS DNA.MaxTaxi,_ 8 AS DNA.TotTaxi,_ 5 AS DNA.NoCarRepair,_ 4 AS DNA.MinCarRepair,_ 6 AS DNA.MaxRepair,_ 8 AS DNA.TotCarRepair,_ 5 AS DNA.NoTickets,_ 4 AS DNA.MinTickets,_ 6 AS DNA.MaxTickets,_ 8 AS DNA.TotTickets,_ 5 AS DNA.NoTrain,_ 4 AS DNA.MinTrain,_ 6 AS DNA.MaxTrain,_ 8 AS DNA.TotTrain,_ 5 AS DNA.NoEdu,_ 4 AS DNA.MinEdu,_ 6 AS DNA.MaxEdu,_ 8 AS DNA.TotEdu,_ 5 AS DNA.NoDirect,_ 4 AS DNA.MinDirect,_ 6 AS DNA.MaxDirect,_ 8 AS DNA.TotDirect,_ 5 AS DNA.NoGames,_ 4 AS DNA.MinGames,_ 6 AS DNA.MaxGames,_ 8 AS DNA.TotGames,_ 5 AS DNA.NoPost,_ 4 AS DNA.MinPost,_ 6 AS DNA.MaxPost,_ 8 AS DNA.TotPost,_ 5 AS DNA.NoGambling,_ 4 AS DNA.MinGambling,_ 6 AS DNA.MaxGambling,_ 8 AS DNA.TotGambling,_ 5 AS DNA.No50km,_ 4 AS DNA.Min50km,_ 6 AS DNA.Max50km,_ 8 AS DNA.Tot50km,_ 5 AS DNA.No100km,_ 4 AS DNA.Min100km,_ 6 AS DNA.Max100km,_ 8 AS DNA.Tot100km,_ 5 AS DNA.No150km,_ 4 AS DNA.Min150km,_ 6 AS DNA.Max150km,_ 8 AS DNA.Tot150km,_ 5 AS DNA.No250km,_ 4 AS DNA.Min250km,_ 6 AS DNA.Max250km,_ 8 AS DNA.Tot250km,_ 5 AS DNA.No500km,_ 4 AS DNA.Min500km,_ 6 AS DNA.Max500km,_ 8 AS DNA.Tot500km,_ 5 AS DNA.No1000km,_ 4 AS DNA.Min1000km,_ 6 AS DNA.Max1000km,_ 8 AS DNA.Tot1000km,_ 5 AS DNA.No2000km,_ 4 AS DNA.Min2000km,_ 6 AS DNA.Max2000km,_ 8 AS DNA.Tot2000km,_ 5 AS DNA.No3000km,_ 4 AS DNA.Min3000km,_ 6 AS DNA.Max3000km,_ 8 AS DNA.Tot3000km,_ 5 AS DNA.No5000km,_ 4 AS DNA.Min5000km,_ 6 AS DNA.Max5000km,_ 8 AS DNA.Tot5000km,_ 5 AS DNA.NoFar,_ 4 AS DNA.MinFar,_ 6 AS DNA.MaxFar,_ 8 AS DNA.TotFar,_ 5 AS DNA.NoOther,_ 4 AS DNA.MinOther,_ 6 AS DNA.MaxOther,_ 8 AS DNA.TotOther,_ 5 AS DNA.NoClassy,_ 4 AS DNA.MinClassy,_ 6 AS DNA.MaxClassy,_ 8 AS DNA.TotClassy,_ 5 AS DNA.NoBusiness,_ 4 AS DNA.MinBusiness,_ 6 AS DNA.MaxBusiness,_ 8 AS DNA.TotBusiness,_ 5 AS DNA.NoConstruction,_ 4 AS DNA.MinConstruction,_ 6 AS DNA.MaxConstruction,_ 8 AS DNA.TotConstruction,_ 5 AS DNA.NoInsurance,_ 4 AS DNA.MinInsurance,_ 6 AS DNA.MaxInsurance,_ 8 AS DNA.TotInsurance,_ 5 AS DNA.NoGov,_ 4 AS DNA.MinGov,_ 6 AS DNA.MaxGov,_ 8 AS DNA.TotGov,_ 5 AS DNA.NoTransport,_ 4 AS DNA.MinTransport,_ 6 AS DNA.MaxTransport,_ 8 AS DNA.TotTransport,_ 5 AS DNA.NoJewellery,_ 4 AS DNA.MinJewellery,_ 6 AS DNA.MaxJewellery,_ 8 AS DNA.TotJewellery,_ 5 AS DNA.NoLifeStyle,_ 4 AS DNA.MinLifeStyle,_ 6 AS DNA.MaxLifeStyle,_ 8 AS DNA.TotLifeStyle,_ 5 AS DNA.NoVehicle,_ 4 AS DNA.MinVehicle,_ 6 AS DNA.MaxVehicle,_ 8 AS DNA.TotVehicle,_ 5 AS DNA.NoGames,_ 4 AS DNA.MinGames,_ 6 AS DNA.MaxGames,_ 8 AS DNA.TotGames,_ 5 AS DNA.NoDigital,_ 4 AS DNA.MinDigital,_ 6 AS DNA.MaxDigital,_ 8 AS DNA.TotDigital,_ 5 AS DNA.NoSports,_ 4 AS DNA.MinSports,_ 6 AS DNA.MaxSports,_ 8 AS DNA.TotSports,_ 5 AS DNA.NoRealEstate,_ 4 AS DNA.MinRealEstate,_ 6 AS DNA.MaxRealEstate,_ 8 AS DNA.TotRealEstate,_ 76 AS DNA.RNA$
END SUB
|
|