Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Texte [ Archives Visual Basic / Texte ] (John7)

mercredi 8 mars 2006 à 18:22:16 | Texte

John7

bonjour à tous,

Voilà mon problème: J'ai un fichier texte et je voudrais lire ligne par ligne et chaque ligne la découper en N caractères pour pouvoir mettre certaine données dans une DB.
Bien sur je pourrais mettre un bouton  qui change de ligne à chaque fois, mais sur un fichier de 16 mo, j'ai pas fini !!!
Si vous avez une bonne idée.    Merci d'avance.
john


mercredi 8 mars 2006 à 19:05:00 | Re : Texte

casy

Membre Club
Réponse acceptée !
J'ai pas très bien compris ton problème. Pourquoi tu veux un bouton pour passer à la ligne suivante ?
Lorsque tu as lu une ligne, le pointeur dans ton fichier est automatiquement positionné sur la ligne suivante, tu n'as pas besoin de changer de ligne, il te suffit de lire séquentiellement les lignes les unes après les autres. Tu peux faire ça dans une boucle par exemple :

Tant que pas fin du fichier
--> lecture de la ligne
--> traitement de la ligne lue
--> enregistrement des données
--> et on reboucle






mercredi 8 mars 2006 à 19:16:25 | Re : Texte

ScSami

Membre Club
En effet!!! Autrement dit, il faut un code du genre :

Dim varCheminDuFichier As String
Dim varCanal As Integer  '0-512

varCheminDuFichier = "C:\...\...\fichier.ext"
varCanal = FreeFile

Open varCheminDuFichier As Input As varCanal
 Do While Not(EOF(varCanal)
  Line Input #varCanal, maVariableATraiter
  'traitement de ta variable (ta ligne récupérée)
 Loop
Close varCanal


Enjoy

( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )<

mercredi 8 mars 2006 à 19:54:03 | Re : Texte

John7

Bonsoir ScSami  et merci pour cette réponse
Le plus gros problème c'est que dans chaque ligne, j'ai des données a récupérer qui ne sont pas identiques. Je m'explique:
Voiçi une ligne type: 201500000000000000000000000170BMAUTO                                            COR_B39.9 2003043020030808075848
je dois couper cette ligne à partir du début en 9 puis 6 puis 6 puis1 puis 2 puis 3 chiffres et c'est à partir des 3 chiffres, suivant les chiffres, que je mets dans une DB ce qui suit !!! j'espere que ça va, c'est pas dur a comprendre mais à ecrire!!!!


john


mercredi 8 mars 2006 à 20:36:24 | Re : Texte

ScSami

Membre Club
Bon, je sais pas exactement comment tu veux faire exactement et comment ni même ce que tu veux mettre dans ta DB mais pour découper une String, c'est pas compliqué : il faut utiliser Mid !
Mid(String, Début, Longueur)
P.ex. :  Mid("ABCD", 2, 3)  >>  "BCD"

Remplace ceci :
'traitement de ta variable (ta ligne récupérée)
Par un truc du genre :
Partie1 = Mid(maVariableATraiter, 1, 9)
Partie2
= Mid(maVariableATraiter, 10, 6)
Partie3 = Mid(maVariableATraiter, 16, 6)
Partie4 = Mid(maVariableATraiter, 22, 6)
Partie5 = Mid(maVariableATraiter, 28, 1)
Partie6 = Mid(maVariableATraiter, 29, 3)

Ensuite, c'est à toi de voir quoi faire de toutes ces parties et comment les traiter !!!
Mais ça, c'est un autre problème (qui mériterait un autre post sans doute!)...

Enjoy

( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )<

mercredi 8 mars 2006 à 21:27:56 | Re : Texte

John7

Mercci ScSami mais comment faire pour passer à une autre ligne automatiquement
A+

john

mercredi 8 mars 2006 à 21:40:10 | Re : Texte

econs

Administrateur CodeS-SourceS
Réponse acceptée !


Salut,
Il faut combiner les deux codes de ScSami :


Dim varCheminDuFichier As String
Dim varCanal As Integer  '0-512

varCheminDuFichier = "C:\...\...\fichier.ext"
varCanal = FreeFile


Open varCheminDuFichier For Input As varCanal
    While Not(EOF(varCanal)
        Line Input #varCanal, maVariableATraiter
        Partie1 = Mid(maVariableATraiter, 1, 9)
        Partie2
= Mid(maVariableATraiter, 10, 6)
        Partie3 = Mid(maVariableATraiter, 16, 6)
        Partie4 = Mid(maVariableATraiter, 22, 6)
        Partie5 = Mid(maVariableATraiter, 28, 1)
        Partie6 = Mid(maVariableATraiter, 29, 3)
    Wend
Close varCanal



La méthode Line Input passe automatiquement à la ligne suivante après avoir lu une ligne. Et la boucle While te permet de faire çà jusqu'à la fin du fichier.


Manu




mercredi 8 mars 2006 à 21:55:58 | Re : Texte

John7

Bonsoir, ça j'avais bien compris, mais quand je veux afficher 3 ou 4 parties dans des textbox et passer à une autre ligne pour en lire  d'autres, je repasse par ce sub mais ça ne marche pas !!!

john

mercredi 8 mars 2006 à 22:12:42 | Re : Texte

ScSami

Membre Club
Ce que tu n'as pas compris c'est que le code que je t'ai donné parcours AUTOMATIQUEMENT (via la boucle Do/Loop [ou While/Wend dans le code de Econs] ) TOUTES LES LIGNES de ton fichier, UNE PAR UNE en les découpant à chaque fois.

Tu n'es pas clair !!! Déjà, au début, y'avait pas de TextBox mais tu parlais de DB... Alors ma question est simple : qu'est-ce que tu veux faire ???? Soit un peu plus clair s'il te plait.

Enjoy

( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )<

mercredi 8 mars 2006 à 22:33:45 | Re : Texte

John7

Re,
c'est vrai que c'est plus dur par écrit, mais je vais essayer.
Je reçois un fichier txt avec des lignes presque semblable du genre :
201500000000000000000000000170BMAUTO                                            COR_B39.9 2003043020030808075848
201500000305422426498A00020                 1000              000000B   112                   1+000000000014151+000000000011040+000000000000000+000000000000000+040                              B   0400
je dois enlever 24 caractères puis suivant les 3 d'aprés (000 ou 001 ou 003 ou 005 etc...), je mets dans une DB tout ce qui suit au bon endroit.Pour la base , je sais!!! Il etait temps me direz-vous !!!!
Je voulais juste tester avec des textbox pour voir ce que ça faisait.
J'espere avoir été assez clair  merci................

john



1 2

Cette discussion est classé dans : fichier, ligne, texte


Répondre à ce message

Sujets en rapport avec ce message

Lecture de fichier texte avec récupération des espaces.... [ par interkira ] Bonjour,J'ai en entrèe un fichier texte et je dois lire ligne par ligne le fichier.Mon souci est que je ne récupére pas les espaces devant et je n'arr problème avec la lecture et l'écriture sur les fichiers texte [ par zouh ] salut tout le monde.mon souci c'est que je n'arrive pas à écrire ou lire dans un fichier texte malgrès le fait que j'arrive à le créer ce fichier.voic effacer des block de texte dans un fichier [ par gmorin ] Bonjour,je cherche à effacer des block de texte spécifiques dans un fichier.  Je connais la première ligne et la dernière, mais je ne peux jamais savo Effacer une ligne dans un fichier texte [ par Asghaard ] Bonjour,(je fais des macros sous VBE Excel)Je ne parviens pas à trouver comment effacer une ligne précise dans un fichier en .txtje sais écrire à la f Modifier un fichier texte [ par spartacus1er ] BonjourJe cherche à modifier un fichier texte déjà existant à une ligne déterminée.Je sais déterminer la ligne en question mais je ne sais pas comment ecriture sur une seule ligne [ par neolitic ] resalut: J'écris un prog de cryptage et après avoir modifié toutes les lettres d'apres un fichier texte. J'écris ces lettres modifiees dans un autre obtenir le nombre de ligne d'un fichier texte en .net [ par SAXOBIC ] bonjour,est-ce que qqn connait l'instruction ou un bout de code pour obtenir le nombre de ligne d'un fichier texte?A+merci d'avance pour vos réponse Rechercher un ligne dans un fichier texte [ par veler ] Bonjour tous le monde, voila, après de nombreuses recherches sur différent site web, je n'ai toujours pas de réponses à mais questions:comment cherche Cherche Aide Download File Fonction et Liste [ par dremos ] Bonjour   <p class="MsoNormal" st Variable d'une ligne de texte [ par gramlinz60 ] Bonjour à tous,Voila, j'ai un fichier texte de 200 000 lignes. j'ai une fichier excel de 45000 lignes.Je voudrais cherché les infos dans le fichier te


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,936 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.