begin process at 2012 02 06 19:47:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Foxpro

 > 

Archives

 > 

Formulaires

 > 

Vérification des fichiers en format .dbf


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Vérification des fichiers en format .dbf

lundi 24 avril 2006 à 02:00:40 | Vérification des fichiers en format .dbf

devham

salut,
je developpe en VB.net , mais cette fois je suis obligé à faire une appliquation en VFP, l'objectif de cette appliquation c'est de verifier la structure de quatre fichiers en format .dbf .
la premiere étape c'est de comparer les champs de la column bac au fichier1.dbf, avec l'entete du fichier2.dbf :
fichier1.dbf =
x         column1        x         column2        x      bac         x      column3      x
x            a                x               b             x     nom        x           a1          x
x            b                x               b1           x   prenom     x           a2          x
x            c                x               b2           x   numero     x           a3          x
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

fichier2.dbf =
x         nom        x         prenom        x     numero     x     
x                       x                             x                      x 
x                       x                             x                      x 
x                       x                             x                      x
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Comment faire pour verifier la structure de ces deux fichiers(tables) ?

merci. apres cette étape j V vous donnez la deuxieme étape.

lundi 24 avril 2006 à 17:05:05 | Re : Vérification des fichiers en format .dbf

Mike Gagnon

Membre Club
Regarde l'aide en ligne pour AFIELDS() Cela va te donner un bon point depart pour determiner le nom des champs dans la table fichier.dbf >>apres cette étape j V vous donnez la deuxieme étape. J'espere que TU vas en faire un bout toi-meme ;-)
lundi 24 avril 2006 à 22:47:53 | Re : Vérification des fichiers en format .dbf

devham



Merci, Merci,  ca me donne de la force pour chercher et travailler mieux sur ce projet, je te promet, je trouverais la solution, et je vous lacherais le code.

mercredi 26 avril 2006 à 03:15:24 | Re : Vérification des fichiers en format .dbf

devham

j'ai posé le problem et maitenant je pose la solution , LOL
ce code est la solution :

close all
clear

*on selectionne le premier fichier gen
select 0
use "C:\FICHIERS\fichier1.dbf" alias gen

*on met les champs du colonne qui nous interesse dans un vecteur
i=1
declare vgen(100)
do while not eof()
*bac est l'alias du colonne que j'utilise
vgen(i)= alltr (gen.bac)
i=i+1
skip
enddo
nbrLigne = i

select 0
use "C:\FICHIERS\fichier2.dbf" alias dbff
nbrColumn = fcount()

*la commande afields()
*pour transformer notre tableau au vecteur deux dimensions
afields(dbff)
for i=1 to nbrColumn
if vgen(1) = dbff(i,1)

*c'est juste pour marquer le point de départ de comparaison
*parceque le bon truc, qu'on ne sais jamais notre point de depart
?'La premiere ligne du colonne BAC dans le fichier GEN du controle est : ' + dbff(i,1)
debutCompar = i
i=nbrColumn
endif
next

*une boucle pous parcourir les deux vecteur
*et comparaison en meme temps
j=1
m = debutCompar
nbrErreur = 0
do while j <> nbrLigne
if vgen(j) == dbff(m,1)
j=j+1
else
?'Erreur entre la Colonne '+dbff(m,1)+' et la Ligne '+vgen(j)
j=j+1
nbrErreur = nbrErreur + 1
endif
m = m+1
enddo

*nbrErreur est un compteur d'erreurs
if nbrErreur = 0
etat = .T.
else
etat = .F.
endif

if etat = .T.
?'La structure de de votre fichier est correcte'
else
?'Il existe'+str(nbrErreur)+' Erreur dans votre fichier '
endif

REMARQUE : la fonction afields() rend le fichier dbf ou (le tableau) sous forme d'un vecteur en deux dimensions, qu'on peut parcourir,
ca ve dire que l'emplacement de la colonne bac dans notre fichier1.dbf devien fichier1(3,1), biensur apres de faire afields(fichier1).

Merci bien, monsieur Mike Gagnon .
et Merci de m'alérter s'il y a une information ou expression, incorrecte,

 "ne me donne pa du poissons, mais aprend moi comment le pecher"

mercredi 26 avril 2006 à 03:26:45 | Re : Vérification des fichiers en format .dbf

devham

j m'excuse,

"ne me donne pas du poissons, mais dit moi comment le faire"

mercredi 26 avril 2006 à 11:18:39 | Re : Vérification des fichiers en format .dbf

Mike Gagnon

Membre Club
Ok, parfait. Maintenant que tu as compris le concept et en Foxpro en plus, voici comment moi j'aurais fais. Le principe est les meme que le tien, mais quelques raccourcis. use "C:\FICHIERS\fichier1.dbf" ALIAS gen exclusive IN 0 INDEX ON BAC TAG BAC ** On crée un index sur le champ bac pour faire notre recherche use "C:\FICHIERS\fichier2.dbf" alias dbff SHARED AGAIN IN 0 SELECT dbff nCount = AFIELDS(leschamps,'dbff') && Compte les champs FOR i = 1 TO nCount SELECT gen IF SEEK(leschamps[i,1]) && On cherche le nom du champs la premiere table ** On a trouvé le champs ELSE ** les champs n'existe pas endif ENDFOR
jeudi 27 avril 2006 à 01:22:29 | Re : Vérification des fichiers en format .dbf

devham

Merci, Votre méthode est plus simple que la mienne.

samedi 6 mai 2006 à 18:05:04 | Re : Vérification des fichiers en format .dbf

devham

SVP,
j veux savoir comment faire pour parcourir un dbf ligne par ligne, en verifiant les colonnes de chaque ligne.
Merci.
samedi 6 mai 2006 à 18:25:26 | Re : Vérification des fichiers en format .dbf

Mike Gagnon

Membre Club
Réponse acceptée !
select matable CLEAR USE ? ALIAS maTable && Va chercher ta table select matable nCount = AFIELDS(MESCHAMPS,'MATABLE') ? nCount && Combien de champs on a. select matable scan for i = 1 to nCount ?"Champs: "+ FIELD(i,ALIAS(),0)+ " Valeur :" +TRANSFORM(evaluate(field[i])) && De donne la value du champs endfor endscan Ceci va te donner le nom du champ et la valeur du champs.
jeudi 11 mai 2006 à 14:27:00 | Le Code

devham


Voici mon code :

CLOSE TABLES
CLEAR

SELECT 0
USE "c:\fichiers\control\monop1.gen" ALIAS monGen
genCount=AFIELDS(monGen)
i=1
DECLARE vecLgrille(3,500)
DO WHILE NOT EOF()
vecLgrille(1,i)= ALLTRIM(monGen.get)
vecLgrille(2,i)= ALLTRIM(monGen.Lgrille)
i=i+1
skip
ENDDO

SELECT 0
USE "c:\fichiers\control\monop1.dbf" ALIAS monDbf
nCount= AFIELDS(monDbf)
*?nCount
i=1
DO WHILE i<>nCount
IF ALLTRIM(vecLgrille(1,1))==ALLTRIM(monDbf(i,1))
debutCompar=i
i=nCount
ELSE
i=i+1
ENDIF
ENDDO
*?debutCompar
*LEN(ALLTRIM(TRANSFORM(evaluate(field[i]))))

SCAN
i=debutCompar
j=1
compErr=0
DO WHILE i<>genCount
*?mapof(i,1)
*?"Champs: "+FIELD(i)+" Valeur :"+TRANSFORM(evaluate(field[i]))+" Longueur "+STR(LEN(ALLTRIM(TRANSFORM(evaluate(field[i]))))) && De donne la value du champs
*?TRANSFORM(evaluate(field[i]))
*?ALLTRIM(STR(LEN(TRANSFORM(evaluate(field[i])))))
*?vecLgrille(2,j)
IF vecLgrille(2,j) < ALLTRIM(STR(LEN(TRANSFORM(evaluate(field[i])))))
?"Erreur"
?ALLTRIM(STR(LEN(TRANSFORM(evaluate(field[i])))))+'  '+FIELD(i)
?vecLgrille(2,j)+'  '+vecLgrille(1,j)
j=j+1
i=i+1
compErr=compErr+1
ELSE
j=j+1
i=i+1
ENDIF
ENDDO
ENDSCAN

IF compErr==0
?'bien'
ELSE
?ALLTRIM(STR(compErr))+' Erreur'
ENDIF



Cette discussion est classée dans : xx, format, fichiers, dbf, étape


Répondre à ce message

Sujets en rapport avec ce message

Différents formats de dbf [ par pledoux ] Bonjour,J'ai une table (dont je ne maitrise pas le format) dans laquelle je dois mettre à jour des champs. Sous VB ma propiété CONNECT vaut "FoxPro 3. erreurs 26 ou 2066 occasionnelles sur divers fichiers de données [ par stepber ] Bonjour, j'ai repris depuis plus d'1 an une application VFP6 qui utilise une multitude de tables avec index structurel : fichiers DBF avec CDX du mêm erreur de lecture de fichier 1104 [ par stepber ] Bonjour, je continue à avoir des désagréments chez des utilisateurs d'une application VFP9. Pour la 1ère fois, l'un d'eux me signale des erreurs de l txt vers dbf [ par remessa ] Bonjour, je travaille sur foxpro 6.0, et j'ai interet à faire un petit programme qui consiste en importer un fichier txt vers DBF c'est faisable sur Utilser les fichiers Dbase III dans FoxPro [ par Aby1311 ] Bonjour à tous; Voila j'ai besoin de concevoir une application qui importe des données à partir de tables Dbase III, seulement j'ai un problème que j APPEND FROM ...SDF [ par amhidi ] Bonjour, Je fais un "append from" sousfoxpro 7 d'un txt qui contient 4 800 000 dans une structure DBF, après l'exécution que se fait sans aucun messa Table dbf corrompu [ par abdourasiz ] Bonjour Michel, comme tu l'as souhaité, je te balance mon problème sur le forum. Je demandais comment récupérer les données d'une table dbf endommagé tranfert de données DBF => SQL 2008 [ par rao64 ] J'utilise VFP 9 sp2 pour faire des travaux ponctuels de contrôle sur des données. Actuellement je cherche à migrer des DBF vers une base SQL server 20 Création d'un exe avec vfp sans d'autres fichiers [ par lafik ] Bonsoir à tous, j'ai la problématique suivante: j'ai développé un petit générateur de tarification sur vfp5 (du genre, il te donne un prix en foncti Comment récupérer un fichier dbf sur le disque avec vfp afin de le traiter [ par abdourasiz ] Bonsoir j'ai un petit souci; j'ai développé une application vfp qui génère des fichiers dbf, qui sont ensuite transférer par ftp vers un poste dist


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,902 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales