Recherche de string dans un fichier

nazzguhl Messages postés 26 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 26 janvier 2011 - 10 août 2005 à 12:51
MNEMONIC Messages postés 59 Date d'inscription dimanche 19 décembre 2004 Statut Membre Dernière intervention 1 septembre 2006 - 10 août 2005 à 18:18
Bonjour,

Tout d'abord, je doit dire que je ne programme pas en C, mais VB, on m'a conseillé d'écrire l'outil que j'ai besoin en C.
J'ai à traiter des fichiers textes (en fait c'est du spool PCL) d'environ 1 à 2 Go et pour chaque page je dois extraire des infos en VB il faut 6 à 8 heures et il paraît qu'en C ce même programme mettrait 2 à 3 minutes !

Explication de l'outil : il faut lire un fichier texte (spool PCL : pas de CRLF, chaque article commence par le code hexa "1B", pas de notion de longueur d'article) et rechercher plusieurs balises PCL (séquences binaires), exemple en hexa :
balise 1 = "1b2a7031323035581b2a7035383159" ou
balise 2 = "1b2a7032323397837303259" ou
balise 3 = "1b20703132303578343732591b2670333058"
et pour chaque balise je récupère le texte qui suit la balise (jusqu'au "1b" suivant).
Pour la balise 1 j'incrémente un compteur.

En plus pour la balise 1, j'écrit dans un fichier texte les infos stockées de chaque balises
et de même en fin de fichier

Est-ce que quelqu'un pourrait m'écrire le source ? le plus simple possible, j'aurai certainement d'autres balises à ajouter plus tard, j'ai récuppéré un compilateur C gratuit pour créer l'exe

Merci d'avance
ACT

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 août 2005 à 13:06
et comment tu vas gérer les 2 ou 3 minutes (possible que soit encore moins si bien écrit) en VB ??? VB ne sait pas gérer le multi thread sans planter, les progs qui font de gros traitements doivent s'écrire complet en C.
VB est bon pour faire mumuse, on n'a jamais vu un prog correct en vente fait en VB, à laisser dans la mallette de jeux pour enfants.

ciao...
BruNews, MVP VC++
0
MNEMONIC Messages postés 59 Date d'inscription dimanche 19 décembre 2004 Statut Membre Dernière intervention 1 septembre 2006
10 août 2005 à 15:26
Tu peux te servir de ce qui se trouve ici http://www.cppfrance.com/forum.v2.aspx?ID=531292#15
0
nazzguhl Messages postés 26 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 26 janvier 2011
10 août 2005 à 15:41
Je te remercie pour ta réponse qui ne m'avance à rien, ce n'est pas moi qui ait choisi le langage préconisé à ma boite.
Si tu fais parti des personnes qui aide les autres tu réponds normalement sans faire de commentaire sur le choix de logiciel, je travaille bien sous windows alors que je ne supporte pas microsoft... je ne démissione pas pour autant !
Si c'est pour faire des commentaires insultants, à mon avis tu n'as rien à faire sur ces forum, même si tu es une bête dans ta partie.


Le langage VB fonctionne très bien pour nos besoins, sauf pour certain traitement de fichier (conversion, extraction de fichier avec des positionnement bizare).
Or la seule personne qui connait le langage C est en vacances jusquà fin août et je doit récupérer les info du fichier PCL pour vendredi au plus tard et en VB le traitementest trop long : je ne peut pas mobiliser un serveur de traitement plus de 10 min (on traite environ 400 appli par jour).
Il me faut juste un source C qui me permettra de traiter le fichier puis de relire les info par un VB, je n'ai pas d'autres solutions et c'est urgent.


Merci
ACT
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 août 2005 à 15:50
ah alors si tu mets ici en plus du MP, je fais de même:

commentaires insultants ???


Je ne suis pas maître d'école, faut voir ailleurs pour les leçons de lecture ou alors m'indiquer où se trouve quelque insulte.


Bien entendu qu'on peut faire des comments sur les choix techniques pourvu qu'ils soient fondés. On n'est pas encore en régime communiste que je sache.


Pour ton code, c'est bien entendu trop long pour te le sortir dans l'heure qui suit. On me donne les specs précises, je fais un devis et on voit si on est d'accord, simple, non ?

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 août 2005 à 16:06
MNEMONIC > on ne traite pas de grosses masses de données avec des fgets et autres bidules interprétés, c'est aussi trop lent. Faut boucler par aspiration dans un buffer.
exemple ici:
TROUVER UNE CHAINE DE CARACTÈRES(2) (WIN32)
http://www.cppfrance.com/code.aspx?id=19169

ciao...
BruNews, MVP VC++
0
MNEMONIC Messages postés 59 Date d'inscription dimanche 19 décembre 2004 Statut Membre Dernière intervention 1 septembre 2006
10 août 2005 à 18:18
BruNews > Je sais :), mais là, je l'ai fait pour un fichier d'une dizaine de k en 5 minutes...
Ceci dit, c'est toujours plus rapide qu'en VB ...
0
Rejoignez-nous