plain text | CSS syntax coloring (use 'plain text' for copying - this code may be inexact)
<MvCOMMENT>************ t r u X o f t d B L i b r a r y *************************** | copyright (c) 1999+ truXoft. Use free but please keep credits. http://truxoft.com | RESORTDB - resorts a database physically | example call: resortDB('prod', '/shop/product.dbf', 'prod.d.title') ***************************************************************************</MvCOMMENT><MvFUNCTIONNAME="ResortDB"PARAMETERS="alias,fileNm,idxExpr"><MvOPENNAME="{l.alias}"DATABASE="{l.fileNm}"><MvMAKEINDEXNAME="{l.alias}"INDEXFILE="{glosub(l.fileNm,'.dbf','.mvx')}"EXPR="{&[l.idxExpr];}"FLAGS="ascending,nounique"><MvASSIGNNAME="l.struct"VALUE="{glosub(l.fileNm, '.dbf', '-str.dbf')}"><MvASSIGNNAME="l.newDb"VALUE="{glosub(l.fileNm, '.dbf', '-new.dbf')}"><MvREVEALSTRUCTURENAME="{l.alias}"DATABASE="{l.struct}"><MvOPENNAME="Struct"DATABASE="{l.struct}"><MvIFEXPR="{MvOPEN_Error}"><H3>Cannot resort the<MvEVALEXPR="{l.alias}">database!</H3><MvELSE><MvASSIGNNAME="l.M"VALUE="MEMO"><MvASSIGNNAME="l.N"VALUE="NUMBER"><MvASSIGNNAME="l.C"VALUE="CHAR"><MvASSIGNNAME="l.B"VALUE="BOOL"><MvASSIGNNAME="l.D"VALUE="DATA"><MvASSIGNNAME="l.fields"VALUE=""><MvWHILEEXPR="{NOT Struct.d.EOF}"><MvASSIGNNAME="l.fields"VALUE="{l.fields $ ',' $ Struct.d.field_name $ ' ' $ l.&[Struct.d.field_type]; $ '(' $ Struct.d.field_len $ '.' $ Struct.d.field_dec $ ')'}"><MvSKIPNAME="Struct"></MvWHILE><MvCREATENAME="db"DATABASE="{l.newDb}"FIELDS="{substring(l.fields,2,len(l.fields)-1)}"><MvIFEXPR="{MvCREATE_Error}"><H3>Cannot create new<MvEVALEXPR="{l.alias}">database!</H3><MvELSE><MvWHILEEXPR="{NOT &[l.alias];.d.EOF}"><MvGONAME="Struct"ROW="top"><MvWHILEEXPR="{NOT Struct.d.EOF}"><MvASSIGNNAME="db.d.&[Struct.d.field_name];"VALUE="{&[l.alias];.d.&[Struct.d.field_name];}"><MvSKIPNAME="Struct"></MvWHILE><MvADDNAME="db"><MvSKIPNAME="{l.alias}"></MvWHILE><MvCLOSENAME="db"><MvCLOSENAME="struct"><MvCLOSENAME="{l.alias}"><MvIFEXPR="{frename(l.fileNm,glosub(l.fileNm,'.dbf','-old.dbf'))}"><MvASSIGNNAME="l.tmp"VALUE="{frename(l.newDb,l.fileNm) $ fdelete(l.struct)}"><MvASSIGNNAME="l.dbt"VALUE="{glosub(l.fileNm,'.dbf','.dbt')}"><MvIFEXPR="{fexists(l.dbt)}"><MvASSIGNNAME="l.tmp"VALUE="{frename(l.dbt, glosub(l.dbt,'.dbt','-old.dbt'))}"><MvASSIGNNAME="l.tmp"VALUE="{frename(glosub(l.newDb,'.dbf','.dbt'), l.dbt)}"></MvIF></MvIF></MvIF></MvIF></MvFUNCTION>