Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Append From command craziness
Message
De
18/11/2002 23:10:42
Jordan Pastourel
Worksafe Management Systems
Toowong, Australie
 
 
À
18/11/2002 13:38:33
Dragan Nedeljkovich (En ligne)
Now officially retired
Zrenjanin, Serbia
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
00723745
Message ID:
00724151
Vues:
29
Thank you all for your replies. i ended up writing my own routine to parse the file up. not sure if it is the best solution, but it's done now.
here's what i did:
PROCEDURE parse
Parameters cFileName, cTableName
	** Parses a comma delimited file into a specified table format.
	local cStrSoFar, llInStr, lcCurrChar, lcCurrChar2, cLine, lcInsArr, lnArrPos, lnFieldNum
	cStrSoFar = ""
	lcCurrChar = ""
	lcCurrChar2 = ""
	lInStr = .F.
	lnArrPos = 1
	select &cTableName
	lnFieldNum = afields(lFieldArr)
	release lFieldArr
	fhClaims = fopen(cFileName)
	if fhClaims != -1
		cLine = fgets(fhClaims,8000)  && remove header line
		do while !feof(fhClaims)
			dimension lcInsArr[lnFieldNum]
			cLine = fgets(fhClaims,8000)
			for i=1 to len(cLine)
				lcCurrChar = substr(cLine,i,1)	
				do case
					case lcCurrChar = '"'
						if !lInStr
							lInStr = .T.
						else
							i = i+1
							lcCurrChar2 = substr(cLine,i,1)
							if (lcCurrChar2 = ",") or (i = len(cline))
								lcInsArr[lnArrPos] = cStrSoFar
								lnArrPos = lnArrPos + 1
								cStrSoFar = ""
								lInStr = .F.			
							else
								cStrSoFar = cStrSoFar + lcCurrChar + lcCurrChar2				
							endif
						endif
					case lcCurrChar = ','
						if !lInStr
							lcInsArr[lnArrPos] = cStrSoFar
							lnArrPos = lnArrPos + 1
							cStrSoFar = ""
						else
							cStrSoFar = cStrSoFar + lcCurrChar
						endif
					otherwise
						cStrSoFar = cStrSoFar + lcCurrChar
				endcase
			endfor
			select &cTableName
			append from array lcInsArr
			release lcInsArr
			lnArrPos = 1
		enddo
	endif
	fclose(fhClaims)
ENDPROC
Jordan Pastourel
Development Manager
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform