begin process at 2010 02 09 01:53:12
  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. modifier la structure d'un table sous VB [ par pledoux ] Bonjour,J'utilise le VFPOLEDB que m'a indiqué ThierryPerretier et cela fonctionne bien. Je dois maintenant modifier une table. J'ai fait le code suiva vfpoledb, dbf dans plusieurs repertoire [ par lijohann ] bonjour,je commence juste a utiliser le vfpoledb et j'ai un probleme. Je voudrais executer un requete faisant appel à des tables.dbf se trouvant dans fichiers necessaires au vfpoledb ? [ par lijohann ] bonjour,j'ai une appli sous excel qui utilise le vfpoledb pour accéder à mes donées.Mon probleme est que des utilisateurs doivent l'appeler en mode te exportation .dbf vers fichier texte délimités ! [ par rubix2 ] p'tite question, j'ai VFP6. Je voudrais exporter ma table .dbf en texte délimité par un point virgule. Mais en utilisant l'assistant d'exportation de Commande ADIR( ) ... [ par rubix2 ] Bonjour, j'ai besoin de lister les tables ".dbf" d'un répertoire pour les afficher dans une liste. La commande Adir est parfaite pour cela , le seul h conversion date [ par ducker88 ] Bonjour,Existe t'il une fonction foxpro qui permette de transformer une date du format JJ/MM/AAAA vers le format AAAA-MM-JJ ?duck88 [URGENT] reparer fichier dbf [ par ducker88 ] Bonjour a tous, Voila mon probleme, j'ai un programme qui travaille sur une table mais a chaque fois que j'essaye de l'ouvrir ca me met que le fichier Associer DBF & IDX [ par xemtrj ] Bonjour,J'hérite d'une appli Fox1.0 à convertir en VFP 9.Il y a plein de DBF et de IDX sans programme d'indexation.J'aimerais récupérer l'instruction Réparer fichier DBF FoxPro 9 [ par FLYeRNeT ] Bonjour,Je recherche un logiciel GRATUIT (j'en ai trouvé beaucoup mais ils sont tous payants... ) qui permet de réparer un fichier DBF FoxPro corrompu


Nos sponsors


Appels d'offres

Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,390 sec (4)

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