je dois importer un fichier CSV dans une base de données.
D'habitude j'ai des fichiers texte avec enregistrements de
longueur fixe.
Quelqu'un pourrait-il me conseiller sur la (bonne) méthode
à utiliser.
En folâtrant sur son clavier, Daniel AUBRY s'est exprimé ainsi :
Peu importe le nom des champs. Je serai déjà bien content d'avoir un exemple. Tu le fais comme tu veux, c'est à moi de l'adapter. Les règles de base de ce fichier sont : - pas de retour à la ligne - les champs date encadrés par "" même si vides - les champs sont séparés par ;
Pour que les choses soient bien clair je colle ci-dessous le début du fichier, derrière c'est les données confidentielles.
Dossard;Puce;Type inscription;Nom;Prénom;Sexe;Année de naissance;Date de naissance;Numéro de licence;Fédération;Club;Numéro de club;Comité entreprise;Adresse;Code postal;Ville;Pays;Téléphone;Fax;Email;Temps escompté;Handisport;Capitaine;Certificat médical ou Licence;Date dépot Certificat médical;Etat vérification Certificat médical;Fichier Certificat médical;Catégorie de prix;Montant du paiement;Type de paiement;Message paiement;Détail prix options;Nom manifestation;Nom épreuve;Date épreuve;Param1;Param2;Param3;Param4;Param5;Param6;Param7;Param8;Param9;Param10;Nom équipe;Numéro équipe;Param1 équipe;Param2 équipe;Param3 équipe;Ref. inscription;Date inscription;Décharge acceptée;Règlement accepté;
Le code que je t'ai fait parvenir hier devrait te convenir. As-tu pu l'adapter ? Je vois que tu travailles pour une association JS. C'est bien. :-)
Aski
Hi,
En folâtrant sur son clavier, Daniel AUBRY s'est exprimé ainsi :
Peu importe le nom des champs. Je serai déjà bien content
d'avoir un exemple. Tu le fais comme tu veux, c'est à moi de
l'adapter.
Les règles de base de ce fichier sont :
- pas de retour à la ligne
- les champs date encadrés par "" même si vides
- les champs sont séparés par ;
Pour que les choses soient bien clair je colle ci-dessous le début du
fichier, derrière c'est les données confidentielles.
Dossard;Puce;Type inscription;Nom;Prénom;Sexe;Année de naissance;Date
de naissance;Numéro de licence;Fédération;Club;Numéro de club;Comité
entreprise;Adresse;Code postal;Ville;Pays;Téléphone;Fax;Email;Temps
escompté;Handisport;Capitaine;Certificat médical ou Licence;Date dépot
Certificat médical;Etat vérification Certificat médical;Fichier
Certificat médical;Catégorie de prix;Montant du paiement;Type de
paiement;Message paiement;Détail prix options;Nom manifestation;Nom
épreuve;Date
épreuve;Param1;Param2;Param3;Param4;Param5;Param6;Param7;Param8;Param9;Param10;Nom
équipe;Numéro équipe;Param1 équipe;Param2 équipe;Param3 équipe;Ref.
inscription;Date inscription;Décharge acceptée;Règlement accepté;
Le code que je t'ai fait parvenir hier devrait te convenir.
As-tu pu l'adapter ?
Je vois que tu travailles pour une association JS. C'est bien. :-)
En folâtrant sur son clavier, Daniel AUBRY s'est exprimé ainsi :
Peu importe le nom des champs. Je serai déjà bien content d'avoir un exemple. Tu le fais comme tu veux, c'est à moi de l'adapter. Les règles de base de ce fichier sont : - pas de retour à la ligne - les champs date encadrés par "" même si vides - les champs sont séparés par ;
Pour que les choses soient bien clair je colle ci-dessous le début du fichier, derrière c'est les données confidentielles.
Dossard;Puce;Type inscription;Nom;Prénom;Sexe;Année de naissance;Date de naissance;Numéro de licence;Fédération;Club;Numéro de club;Comité entreprise;Adresse;Code postal;Ville;Pays;Téléphone;Fax;Email;Temps escompté;Handisport;Capitaine;Certificat médical ou Licence;Date dépot Certificat médical;Etat vérification Certificat médical;Fichier Certificat médical;Catégorie de prix;Montant du paiement;Type de paiement;Message paiement;Détail prix options;Nom manifestation;Nom épreuve;Date épreuve;Param1;Param2;Param3;Param4;Param5;Param6;Param7;Param8;Param9;Param10;Nom équipe;Numéro équipe;Param1 équipe;Param2 équipe;Param3 équipe;Ref. inscription;Date inscription;Décharge acceptée;Règlement accepté;
Le code que je t'ai fait parvenir hier devrait te convenir. As-tu pu l'adapter ? Je vois que tu travailles pour une association JS. C'est bien. :-)
Aski
Daniel AUBRY
"Aski" a écrit dans le message de news:
Hi,
En folâtrant sur son clavier, Daniel AUBRY s'est exprimé ainsi :
Peu importe le nom des champs. Je serai déjà bien content d'avoir un exemple. Tu le fais comme tu veux, c'est à moi de l'adapter. Les règles de base de ce fichier sont : - pas de retour à la ligne - les champs date encadrés par "" même si vides - les champs sont séparés par ;
Pour que les choses soient bien clair je colle ci-dessous le début du fichier, derrière c'est les données confidentielles.
Dossard;Puce;Type inscription;Nom;Prénom;Sexe;Année de naissance;Date de naissance;Numéro de licence;Fédération;Club;Numéro de club;Comité entreprise;Adresse;Code postal;Ville;Pays;Téléphone;Fax;Email;Temps escompté;Handisport;Capitaine;Certificat médical ou Licence;Date dépot Certificat médical;Etat vérification Certificat médical;Fichier Certificat médical;Catégorie de prix;Montant du paiement;Type de paiement;Message paiement;Détail prix options;Nom manifestation;Nom épreuve;Date épreuve;Param1;Param2;Param3;Param4;Param5;Param6;Param7;Param8;Param9;Param10;Nom équipe;Numéro équipe;Param1 équipe;Param2 équipe;Param3 équipe;Ref. inscription;Date inscription;Décharge acceptée;Règlement accepté;
Le code que je t'ai fait parvenir hier devrait te convenir. As-tu pu l'adapter ? Je vois que tu travailles pour une association JS. C'est bien. :-)
Aski
Encore pas eu le temps !!! Ce week-end sans faute. Je te tiens au courant.
dany
"Aski" <Aski@aski.fr> a écrit dans le message de news:
uGyjmeAlFHA.1044@tk2msftngp13.phx.gbl...
Hi,
En folâtrant sur son clavier, Daniel AUBRY s'est exprimé ainsi :
Peu importe le nom des champs. Je serai déjà bien content
d'avoir un exemple. Tu le fais comme tu veux, c'est à moi de
l'adapter.
Les règles de base de ce fichier sont :
- pas de retour à la ligne
- les champs date encadrés par "" même si vides
- les champs sont séparés par ;
Pour que les choses soient bien clair je colle ci-dessous le début du
fichier, derrière c'est les données confidentielles.
Dossard;Puce;Type inscription;Nom;Prénom;Sexe;Année de naissance;Date
de naissance;Numéro de licence;Fédération;Club;Numéro de club;Comité
entreprise;Adresse;Code postal;Ville;Pays;Téléphone;Fax;Email;Temps
escompté;Handisport;Capitaine;Certificat médical ou Licence;Date dépot
Certificat médical;Etat vérification Certificat médical;Fichier
Certificat médical;Catégorie de prix;Montant du paiement;Type de
paiement;Message paiement;Détail prix options;Nom manifestation;Nom
épreuve;Date
épreuve;Param1;Param2;Param3;Param4;Param5;Param6;Param7;Param8;Param9;Param10;Nom
équipe;Numéro équipe;Param1 équipe;Param2 équipe;Param3 équipe;Ref.
inscription;Date inscription;Décharge acceptée;Règlement accepté;
Le code que je t'ai fait parvenir hier devrait te convenir.
As-tu pu l'adapter ?
Je vois que tu travailles pour une association JS. C'est bien. :-)
Aski
Encore pas eu le temps !!!
Ce week-end sans faute.
Je te tiens au courant.
En folâtrant sur son clavier, Daniel AUBRY s'est exprimé ainsi :
Peu importe le nom des champs. Je serai déjà bien content d'avoir un exemple. Tu le fais comme tu veux, c'est à moi de l'adapter. Les règles de base de ce fichier sont : - pas de retour à la ligne - les champs date encadrés par "" même si vides - les champs sont séparés par ;
Pour que les choses soient bien clair je colle ci-dessous le début du fichier, derrière c'est les données confidentielles.
Dossard;Puce;Type inscription;Nom;Prénom;Sexe;Année de naissance;Date de naissance;Numéro de licence;Fédération;Club;Numéro de club;Comité entreprise;Adresse;Code postal;Ville;Pays;Téléphone;Fax;Email;Temps escompté;Handisport;Capitaine;Certificat médical ou Licence;Date dépot Certificat médical;Etat vérification Certificat médical;Fichier Certificat médical;Catégorie de prix;Montant du paiement;Type de paiement;Message paiement;Détail prix options;Nom manifestation;Nom épreuve;Date épreuve;Param1;Param2;Param3;Param4;Param5;Param6;Param7;Param8;Param9;Param10;Nom équipe;Numéro équipe;Param1 équipe;Param2 équipe;Param3 équipe;Ref. inscription;Date inscription;Décharge acceptée;Règlement accepté;
Le code que je t'ai fait parvenir hier devrait te convenir. As-tu pu l'adapter ? Je vois que tu travailles pour une association JS. C'est bien. :-)
Aski
Encore pas eu le temps !!! Ce week-end sans faute. Je te tiens au courant.
dany
Aski
Hi,
En folâtrant sur son clavier, Daniel AUBRY s'est exprimé ainsi :
"Aski" a écrit dans le message de news:
Le code que je t'ai fait parvenir hier devrait te convenir. As-tu pu l'adapter ? Je vois que tu travailles pour une association JS. C'est bien. :-)
Aski
Encore pas eu le temps !!! Ce week-end sans faute. Je te tiens au courant.
dany
Ok, ayant passé un certain temps sur le sujet, je suis impatient de savoir si cela t'est utile. ;-)
Aski
Hi,
En folâtrant sur son clavier, Daniel AUBRY s'est exprimé ainsi :
"Aski" <Aski@aski.fr> a écrit dans le message de news:
uGyjmeAlFHA.1044@tk2msftngp13.phx.gbl...
Le code que je t'ai fait parvenir hier devrait te convenir.
As-tu pu l'adapter ?
Je vois que tu travailles pour une association JS. C'est bien. :-)
Aski
Encore pas eu le temps !!!
Ce week-end sans faute.
Je te tiens au courant.
dany
Ok, ayant passé un certain temps sur le sujet, je suis impatient de savoir
si cela t'est utile. ;-)
En folâtrant sur son clavier, Daniel AUBRY s'est exprimé ainsi :
"Aski" a écrit dans le message de news:
Le code que je t'ai fait parvenir hier devrait te convenir. As-tu pu l'adapter ? Je vois que tu travailles pour une association JS. C'est bien. :-)
Aski
Encore pas eu le temps !!! Ce week-end sans faute. Je te tiens au courant.
dany
Ok, ayant passé un certain temps sur le sujet, je suis impatient de savoir si cela t'est utile. ;-)
Aski
Daniel AUBRY
"Aski" a écrit dans le message de news: %
Hi,
En folâtrant sur son clavier, Daniel AUBRY s'est exprimé ainsi :
"Aski" a écrit dans le message de news:
Le code que je t'ai fait parvenir hier devrait te convenir. As-tu pu l'adapter ? Je vois que tu travailles pour une association JS. C'est bien. :-)
Aski
Encore pas eu le temps !!! Ce week-end sans faute. Je te tiens au courant.
dany
Ok, ayant passé un certain temps sur le sujet, je suis impatient de savoir si cela t'est utile. ;-)
Aski
Salut Aski, j'ai testé ton module ce matin et j'ai du le modifier. Je m'en suis largement inspiré et t'en remercie. Pour info mon code ci-dessous :
Dim DonneeNet() NombreChamp = 54
Open NomFichierInternet For Input As #1 Input #1, TextLine Close #1
CompteFiche = 0 PositionDepart = 0
For i = 1 To Len(TextLine) If Mid(TextLine, i, 1) = ";" Then CompteFiche = CompteFiche + 1 ElseIf Asc(Mid(TextLine, i, 1)) = 10 And PositionDepart = 0 Then PositionDepart = i + 1 End If Next
For i = 1 To NombreFiche For C = 1 To NombreChamp P2 = InStr(P1 + 1, TextLine, ";") Texte = Mid(TextLine, P1 + 1, P2 - P1 - 1)
If Texte = """""" Then Texte = ""
If Texte <> "" Then If Asc(Texte) = 10 Then Texte = "PAS-CHARGER" End If
If Mid(Texte, 1, 1) = """" Then Texte = Mid(Texte, 2, Len(Texte) - 2) End If
If Texte <> "PAS-CHARGER" Then DonneeNet(C) = Texte Else C = C - 1 End If P1 = P2 Next ChargeDansGrille Next
"Aski" <Aski@aski.fr> a écrit dans le message de news:
%232WhxwFlFHA.3148@TK2MSFTNGP09.phx.gbl...
Hi,
En folâtrant sur son clavier, Daniel AUBRY s'est exprimé ainsi :
"Aski" <Aski@aski.fr> a écrit dans le message de news:
uGyjmeAlFHA.1044@tk2msftngp13.phx.gbl...
Le code que je t'ai fait parvenir hier devrait te convenir.
As-tu pu l'adapter ?
Je vois que tu travailles pour une association JS. C'est bien. :-)
Aski
Encore pas eu le temps !!!
Ce week-end sans faute.
Je te tiens au courant.
dany
Ok, ayant passé un certain temps sur le sujet, je suis impatient de savoir
si cela t'est utile. ;-)
Aski
Salut Aski,
j'ai testé ton module ce matin et j'ai du le modifier.
Je m'en suis largement inspiré et t'en remercie.
Pour info mon code ci-dessous :
Dim DonneeNet()
NombreChamp = 54
Open NomFichierInternet For Input As #1
Input #1, TextLine
Close #1
CompteFiche = 0
PositionDepart = 0
For i = 1 To Len(TextLine)
If Mid(TextLine, i, 1) = ";" Then
CompteFiche = CompteFiche + 1
ElseIf Asc(Mid(TextLine, i, 1)) = 10 And PositionDepart = 0 Then
PositionDepart = i + 1
End If
Next
En folâtrant sur son clavier, Daniel AUBRY s'est exprimé ainsi :
"Aski" a écrit dans le message de news:
Le code que je t'ai fait parvenir hier devrait te convenir. As-tu pu l'adapter ? Je vois que tu travailles pour une association JS. C'est bien. :-)
Aski
Encore pas eu le temps !!! Ce week-end sans faute. Je te tiens au courant.
dany
Ok, ayant passé un certain temps sur le sujet, je suis impatient de savoir si cela t'est utile. ;-)
Aski
Salut Aski, j'ai testé ton module ce matin et j'ai du le modifier. Je m'en suis largement inspiré et t'en remercie. Pour info mon code ci-dessous :
Dim DonneeNet() NombreChamp = 54
Open NomFichierInternet For Input As #1 Input #1, TextLine Close #1
CompteFiche = 0 PositionDepart = 0
For i = 1 To Len(TextLine) If Mid(TextLine, i, 1) = ";" Then CompteFiche = CompteFiche + 1 ElseIf Asc(Mid(TextLine, i, 1)) = 10 And PositionDepart = 0 Then PositionDepart = i + 1 End If Next
For i = 1 To NombreFiche For C = 1 To NombreChamp P2 = InStr(P1 + 1, TextLine, ";") Texte = Mid(TextLine, P1 + 1, P2 - P1 - 1)
If Texte = """""" Then Texte = ""
If Texte <> "" Then If Asc(Texte) = 10 Then Texte = "PAS-CHARGER" End If
If Mid(Texte, 1, 1) = """" Then Texte = Mid(Texte, 2, Len(Texte) - 2) End If
If Texte <> "PAS-CHARGER" Then DonneeNet(C) = Texte Else C = C - 1 End If P1 = P2 Next ChargeDansGrille Next
Aski
Hugh Daniel AUBRY,
En folâtrant sur ton clavier, tu nous as susurré :
j'ai testé ton module ce matin et j'ai du le modifier. Je m'en suis largement inspiré et t'en remercie. Pour info mon code ci-dessous :
Heureux d'avoir pu t'être utile et merci du retour. On peut constater que tu as pas mal modifié la structure originale de tes fiches. Je remarque que tu utilises systématiquement Mid( alors que tu pourrais prendre Left (ou Right( dans certains cas. Est-ce que Mid est plus rapide ? Tu pourrais aussi utilement te servir de la fonction Replace.
Aski
Hugh Daniel AUBRY,
En folâtrant sur ton clavier, tu nous as susurré :
j'ai testé ton module ce matin et j'ai du le modifier.
Je m'en suis largement inspiré et t'en remercie.
Pour info mon code ci-dessous :
Heureux d'avoir pu t'être utile et merci du retour.
On peut constater que tu as pas mal modifié la structure originale de tes
fiches.
Je remarque que tu utilises systématiquement Mid( alors que tu pourrais
prendre Left (ou Right( dans certains cas. Est-ce que Mid est plus rapide ?
Tu pourrais aussi utilement te servir de la fonction Replace.
En folâtrant sur ton clavier, tu nous as susurré :
j'ai testé ton module ce matin et j'ai du le modifier. Je m'en suis largement inspiré et t'en remercie. Pour info mon code ci-dessous :
Heureux d'avoir pu t'être utile et merci du retour. On peut constater que tu as pas mal modifié la structure originale de tes fiches. Je remarque que tu utilises systématiquement Mid( alors que tu pourrais prendre Left (ou Right( dans certains cas. Est-ce que Mid est plus rapide ? Tu pourrais aussi utilement te servir de la fonction Replace.
Aski
Jean-Marc
"Aski" a écrit dans le message de news:%23GFMA$%
Hugh Daniel AUBRY,
En folâtrant sur ton clavier, tu nous as susurré :
> j'ai testé ton module ce matin et j'ai du le modifier. > Je m'en suis largement inspiré et t'en remercie. > Pour info mon code ci-dessous :
Heureux d'avoir pu t'être utile et merci du retour. On peut constater que tu as pas mal modifié la structure originale de tes fiches. Je remarque que tu utilises systématiquement Mid( alors que tu pourrais prendre Left (ou Right( dans certains cas. Est-ce que Mid est plus rapide
?
Tu pourrais aussi utilement te servir de la fonction Replace.
Oui, et dans tous les cas utiliser les versions avec $ : Mid$, Left$, Right$, etc
Ces fonctions travaillent avec des strings alors que leurs homologues sans le $ travaillent avec des variants, ce qui est: - mal - lent
Il y a aussi moyen d'optimiser fortement le temps de traitement en plaçant les tests de façon mieux organisé, mais je suppose que le temps de traitement n'est pas critique.
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"Aski" <aski@free.com> a écrit dans le message de
news:%23GFMA$%23lFHA.2628@tk2msftngp13.phx.gbl...
Hugh Daniel AUBRY,
En folâtrant sur ton clavier, tu nous as susurré :
> j'ai testé ton module ce matin et j'ai du le modifier.
> Je m'en suis largement inspiré et t'en remercie.
> Pour info mon code ci-dessous :
Heureux d'avoir pu t'être utile et merci du retour.
On peut constater que tu as pas mal modifié la structure originale de tes
fiches.
Je remarque que tu utilises systématiquement Mid( alors que tu pourrais
prendre Left (ou Right( dans certains cas. Est-ce que Mid est plus rapide
?
Tu pourrais aussi utilement te servir de la fonction Replace.
Oui, et dans tous les cas utiliser les versions avec $ :
Mid$, Left$, Right$, etc
Ces fonctions travaillent avec des strings alors que leurs homologues
sans le $ travaillent avec des variants, ce qui est:
- mal
- lent
Il y a aussi moyen d'optimiser fortement le temps de traitement en
plaçant les tests de façon mieux organisé, mais je suppose que le
temps de traitement n'est pas critique.
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
En folâtrant sur ton clavier, tu nous as susurré :
> j'ai testé ton module ce matin et j'ai du le modifier. > Je m'en suis largement inspiré et t'en remercie. > Pour info mon code ci-dessous :
Heureux d'avoir pu t'être utile et merci du retour. On peut constater que tu as pas mal modifié la structure originale de tes fiches. Je remarque que tu utilises systématiquement Mid( alors que tu pourrais prendre Left (ou Right( dans certains cas. Est-ce que Mid est plus rapide
?
Tu pourrais aussi utilement te servir de la fonction Replace.
Oui, et dans tous les cas utiliser les versions avec $ : Mid$, Left$, Right$, etc
Ces fonctions travaillent avec des strings alors que leurs homologues sans le $ travaillent avec des variants, ce qui est: - mal - lent
Il y a aussi moyen d'optimiser fortement le temps de traitement en plaçant les tests de façon mieux organisé, mais je suppose que le temps de traitement n'est pas critique.
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Aski
Hugh Jean-Marc,
En folâtrant sur ton clavier, tu nous as susurré :
"Aski" a écrit dans le message de news:%23GFMA$%
Hugh Daniel AUBRY,
En folâtrant sur ton clavier, tu nous as susurré :
j'ai testé ton module ce matin et j'ai du le modifier. Je m'en suis largement inspiré et t'en remercie. Pour info mon code ci-dessous :
Heureux d'avoir pu t'être utile et merci du retour. On peut constater que tu as pas mal modifié la structure originale de tes fiches. Je remarque que tu utilises systématiquement Mid( alors que tu pourrais prendre Left (ou Right( dans certains cas. Est-ce que Mid est plus rapide ? Tu pourrais aussi utilement te servir de la fonction Replace.
Oui, et dans tous les cas utiliser les versions avec $ : Mid$, Left$, Right$, etc
Ces fonctions travaillent avec des strings alors que leurs homologues sans le $ travaillent avec des variants, ce qui est: - mal - lent
Il y a aussi moyen d'optimiser fortement le temps de traitement en plaçant les tests de façon mieux organisé, mais je suppose que le temps de traitement n'est pas critique.
Merci Jean-Marc pour le complément.
J'avais oublié de dire que dans l'expression For i = 1 To Len(TextLine) Len(TextLine) est recalculé à chaque boucle.
Il est préférable d'écrire lenTextLine = Len(TextLine) For i = 1 To lenTextLine
Aski
Hugh Jean-Marc,
En folâtrant sur ton clavier, tu nous as susurré :
"Aski" <aski@free.com> a écrit dans le message de
news:%23GFMA$%23lFHA.2628@tk2msftngp13.phx.gbl...
Hugh Daniel AUBRY,
En folâtrant sur ton clavier, tu nous as susurré :
j'ai testé ton module ce matin et j'ai du le modifier.
Je m'en suis largement inspiré et t'en remercie.
Pour info mon code ci-dessous :
Heureux d'avoir pu t'être utile et merci du retour.
On peut constater que tu as pas mal modifié la structure originale
de tes fiches.
Je remarque que tu utilises systématiquement Mid( alors que tu
pourrais prendre Left (ou Right( dans certains cas. Est-ce que Mid
est plus rapide ? Tu pourrais aussi utilement te servir de la
fonction Replace.
Oui, et dans tous les cas utiliser les versions avec $ :
Mid$, Left$, Right$, etc
Ces fonctions travaillent avec des strings alors que leurs homologues
sans le $ travaillent avec des variants, ce qui est:
- mal
- lent
Il y a aussi moyen d'optimiser fortement le temps de traitement en
plaçant les tests de façon mieux organisé, mais je suppose que le
temps de traitement n'est pas critique.
Merci Jean-Marc pour le complément.
J'avais oublié de dire que dans l'expression
For i = 1 To Len(TextLine)
Len(TextLine) est recalculé à chaque boucle.
Il est préférable d'écrire
lenTextLine = Len(TextLine)
For i = 1 To lenTextLine
En folâtrant sur ton clavier, tu nous as susurré :
"Aski" a écrit dans le message de news:%23GFMA$%
Hugh Daniel AUBRY,
En folâtrant sur ton clavier, tu nous as susurré :
j'ai testé ton module ce matin et j'ai du le modifier. Je m'en suis largement inspiré et t'en remercie. Pour info mon code ci-dessous :
Heureux d'avoir pu t'être utile et merci du retour. On peut constater que tu as pas mal modifié la structure originale de tes fiches. Je remarque que tu utilises systématiquement Mid( alors que tu pourrais prendre Left (ou Right( dans certains cas. Est-ce que Mid est plus rapide ? Tu pourrais aussi utilement te servir de la fonction Replace.
Oui, et dans tous les cas utiliser les versions avec $ : Mid$, Left$, Right$, etc
Ces fonctions travaillent avec des strings alors que leurs homologues sans le $ travaillent avec des variants, ce qui est: - mal - lent
Il y a aussi moyen d'optimiser fortement le temps de traitement en plaçant les tests de façon mieux organisé, mais je suppose que le temps de traitement n'est pas critique.
Merci Jean-Marc pour le complément.
J'avais oublié de dire que dans l'expression For i = 1 To Len(TextLine) Len(TextLine) est recalculé à chaque boucle.
Il est préférable d'écrire lenTextLine = Len(TextLine) For i = 1 To lenTextLine
Aski
Daniel AUBRY
"Aski" a écrit dans le message de news:
Hugh Jean-Marc,
En folâtrant sur ton clavier, tu nous as susurré :
"Aski" a écrit dans le message de news:%23GFMA$%
Hugh Daniel AUBRY,
En folâtrant sur ton clavier, tu nous as susurré :
j'ai testé ton module ce matin et j'ai du le modifier. Je m'en suis largement inspiré et t'en remercie. Pour info mon code ci-dessous :
Heureux d'avoir pu t'être utile et merci du retour. On peut constater que tu as pas mal modifié la structure originale de tes fiches. Je remarque que tu utilises systématiquement Mid( alors que tu pourrais prendre Left (ou Right( dans certains cas. Est-ce que Mid est plus rapide ? Tu pourrais aussi utilement te servir de la fonction Replace.
Oui, et dans tous les cas utiliser les versions avec $ : Mid$, Left$, Right$, etc
Ces fonctions travaillent avec des strings alors que leurs homologues sans le $ travaillent avec des variants, ce qui est: - mal - lent
Il y a aussi moyen d'optimiser fortement le temps de traitement en plaçant les tests de façon mieux organisé, mais je suppose que le temps de traitement n'est pas critique.
Merci Jean-Marc pour le complément.
J'avais oublié de dire que dans l'expression For i = 1 To Len(TextLine) Len(TextLine) est recalculé à chaque boucle.
Il est préférable d'écrire lenTextLine = Len(TextLine) For i = 1 To lenTextLine
Aski
Effectivement, je vais modifier.
Par contre chaque fichier contient moins de 50 fiches ce qui me fait un temps de traitement de1 à 2 secondes par fichier. Peinard !!!
Dany
"Aski" <aski@free.com> a écrit dans le message de news:
OoyFCMFmFHA.3780@tk2msftngp13.phx.gbl...
Hugh Jean-Marc,
En folâtrant sur ton clavier, tu nous as susurré :
"Aski" <aski@free.com> a écrit dans le message de
news:%23GFMA$%23lFHA.2628@tk2msftngp13.phx.gbl...
Hugh Daniel AUBRY,
En folâtrant sur ton clavier, tu nous as susurré :
j'ai testé ton module ce matin et j'ai du le modifier.
Je m'en suis largement inspiré et t'en remercie.
Pour info mon code ci-dessous :
Heureux d'avoir pu t'être utile et merci du retour.
On peut constater que tu as pas mal modifié la structure originale
de tes fiches.
Je remarque que tu utilises systématiquement Mid( alors que tu
pourrais prendre Left (ou Right( dans certains cas. Est-ce que Mid
est plus rapide ? Tu pourrais aussi utilement te servir de la
fonction Replace.
Oui, et dans tous les cas utiliser les versions avec $ :
Mid$, Left$, Right$, etc
Ces fonctions travaillent avec des strings alors que leurs homologues
sans le $ travaillent avec des variants, ce qui est:
- mal
- lent
Il y a aussi moyen d'optimiser fortement le temps de traitement en
plaçant les tests de façon mieux organisé, mais je suppose que le
temps de traitement n'est pas critique.
Merci Jean-Marc pour le complément.
J'avais oublié de dire que dans l'expression
For i = 1 To Len(TextLine)
Len(TextLine) est recalculé à chaque boucle.
Il est préférable d'écrire
lenTextLine = Len(TextLine)
For i = 1 To lenTextLine
Aski
Effectivement, je vais modifier.
Par contre chaque fichier contient moins de 50 fiches ce
qui me fait un temps de traitement de1 à 2 secondes par fichier.
Peinard !!!
En folâtrant sur ton clavier, tu nous as susurré :
"Aski" a écrit dans le message de news:%23GFMA$%
Hugh Daniel AUBRY,
En folâtrant sur ton clavier, tu nous as susurré :
j'ai testé ton module ce matin et j'ai du le modifier. Je m'en suis largement inspiré et t'en remercie. Pour info mon code ci-dessous :
Heureux d'avoir pu t'être utile et merci du retour. On peut constater que tu as pas mal modifié la structure originale de tes fiches. Je remarque que tu utilises systématiquement Mid( alors que tu pourrais prendre Left (ou Right( dans certains cas. Est-ce que Mid est plus rapide ? Tu pourrais aussi utilement te servir de la fonction Replace.
Oui, et dans tous les cas utiliser les versions avec $ : Mid$, Left$, Right$, etc
Ces fonctions travaillent avec des strings alors que leurs homologues sans le $ travaillent avec des variants, ce qui est: - mal - lent
Il y a aussi moyen d'optimiser fortement le temps de traitement en plaçant les tests de façon mieux organisé, mais je suppose que le temps de traitement n'est pas critique.
Merci Jean-Marc pour le complément.
J'avais oublié de dire que dans l'expression For i = 1 To Len(TextLine) Len(TextLine) est recalculé à chaque boucle.
Il est préférable d'écrire lenTextLine = Len(TextLine) For i = 1 To lenTextLine
Aski
Effectivement, je vais modifier.
Par contre chaque fichier contient moins de 50 fiches ce qui me fait un temps de traitement de1 à 2 secondes par fichier. Peinard !!!
Dany
Aski
Hugh Daniel AUBRY,
En folâtrant sur ton clavier, tu nous as susurré :
Effectivement, je vais modifier.
Par contre chaque fichier contient moins de 50 fiches ce qui me fait un temps de traitement de1 à 2 secondes par fichier. Peinard !!!
Dany
Nous sommes tous d'accord avec toi. On chipote ;-) Mais autant prendre de bonnes habitudes pour tes futurs longs programmes. :-)
Aski
Hugh Daniel AUBRY,
En folâtrant sur ton clavier, tu nous as susurré :
Effectivement, je vais modifier.
Par contre chaque fichier contient moins de 50 fiches ce
qui me fait un temps de traitement de1 à 2 secondes par fichier.
Peinard !!!
Dany
Nous sommes tous d'accord avec toi. On chipote ;-)
Mais autant prendre de bonnes habitudes pour tes futurs longs programmes.
:-)