AIDE sur recherche dans un fichier
AIDE sur recherche dans un fichier
Bonjour,
je suis informaticien mais pas devellopeur du tout
bref mon boss
me demande de luifaire une exe en pure basic
permettant
d'ouvirir un fichier txt
de copier tout les lignes dans comprises un l'intervalle delimiter par le champs saut de page
et pour chaque intervalle creer un fichier acec le contenu
je suis perdu
et a la ramasse
il y a t'il quelqu'un pouvant me proposer une solution
je suis informaticien mais pas devellopeur du tout
bref mon boss
me demande de luifaire une exe en pure basic
permettant
d'ouvirir un fichier txt
de copier tout les lignes dans comprises un l'intervalle delimiter par le champs saut de page
et pour chaque intervalle creer un fichier acec le contenu
je suis perdu
et a la ramasse
il y a t'il quelqu'un pouvant me proposer une solution
Re: AIDE sur recherche dans un fichier
j'ai rien compris la !!cycycycyr a écrit : de copier tout les lignes dans comprises un l'intervalle delimiter par le champs saut de page
et pour chaque intervalle creer un fichier acec le contenu
tu veux quoi en Français s'il te plait ? ...
t'as un document multipage, et tu veux faire plusieurs fichiers (un par page) avec , c'est ça ?
faudrai d'abord préciser le format du fichier en question !!
(je sent que ça va pas etre évident ce truc ...)
alors la tu m'as fait rire
Aors je recommence
j'ai un fichier txt tres long
je veux prendre tous les lignes comprises entre deux caracteres
et pour chaque intervalle trouvéje veus generer un fichier
exemple : mon fichier en entrée
cat text.txt
to
jeoeifjoiejfoejfiojeofjef
1536165165161651
eferzfrzefrzefrze
45456465465464
to
45654654564654
trefezfrezfrezfref
to
dfezfezfzefzefe457467465464
57875456
to
42445465465
dezfdzefezf
et je veux en sortie 4 fichier avec les lignes
test1.txt
jeoeifjoiejfoejfiojeofjef
1536165165161651
eferzfrzefrzefrze
45456465465464
test2.txt
45654654564654
trefezfrezfrezfref
test3.txt
dfezfezfzefzefe457467465464
57875456
test4.txt
42445465465
dezfdzefezf
est ce que tu m'as compris ???
Aors je recommence
j'ai un fichier txt tres long
je veux prendre tous les lignes comprises entre deux caracteres
et pour chaque intervalle trouvéje veus generer un fichier
exemple : mon fichier en entrée
cat text.txt
to
jeoeifjoiejfoejfiojeofjef
1536165165161651
eferzfrzefrzefrze
45456465465464
to
45654654564654
trefezfrezfrezfref
to
dfezfezfzefzefe457467465464
57875456
to
42445465465
dezfdzefezf
et je veux en sortie 4 fichier avec les lignes
test1.txt
jeoeifjoiejfoejfiojeofjef
1536165165161651
eferzfrzefrzefrze
45456465465464
test2.txt
45654654564654
trefezfrezfrezfref
test3.txt
dfezfezfzefzefe457467465464
57875456
test4.txt
42445465465
dezfdzefezf
est ce que tu m'as compris ???
Salut, c'est très simple, si tu poste ici, c'est que tu doit apprendre la prog?
Si oui,
Alors tu lis chaque ligne
Lorsque tu découvres un "to"
Tu créer un nouveau fichier
Tu continue a lire le fichier principale
tu écrit ce qui est lu dans le fichier creer à la rencontre de "to"
au prochain "to" tu fermes le fichier
tu répètes ca jusqu'a la fin.
@+
Si oui,
Alors tu lis chaque ligne
Lorsque tu découvres un "to"
Tu créer un nouveau fichier
Tu continue a lire le fichier principale
tu écrit ce qui est lu dans le fichier creer à la rencontre de "to"
au prochain "to" tu fermes le fichier
tu répètes ca jusqu'a la fin.
@+
J'ai modifier un peu ton idée de base, mais l'idée est là :
Le fichier doit contenir les balise "to>" & "<to" sans espace àpres le dernier caractère, j'ai simplifier au max le code au détriment de l'analyse afin que mon code "te parle" plus.
Code : Tout sélectionner
ReadFile(0,"Texte.txt")
While Eof(0)=0
Buffer$ = ReadString(0)
If Buffer$="to>"
FileCounter+1
CreateFile(FileCounter,"Fichier-"+Str(FileCounter)+".txt")
Buffer$ = ReadString(0)
While Buffer$ <> "<to"
WriteStringN(FileCounter,Buffer$)
Buffer$ = ReadString(0)
Wend
EndIf
Wend
Le fichier doit contenir les balise "to>" & "<to" sans espace àpres le dernier caractère, j'ai simplifier au max le code au détriment de l'analyse afin que mon code "te parle" plus.
Code : Tout sélectionner
to>
Fichier N°1
<to
to>
Fichier N°2
<to
to>
Fichier N°3
<to
to>
Fichier N°4
<to
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
Cpl.Bator, t'es pas obligé d'utiliser 'FileCounter'.
Faut fermer l'ancien fichier qd on trouve un "<to". Et alors on peut réutiliser le même numéro. Car comme l'a expliqué "cycycycyr", il ne semble pas pouvoir avoir 2 fichiers ouverts en même temps (en écriture).
Faut fermer l'ancien fichier qd on trouve un "<to". Et alors on peut réutiliser le même numéro. Car comme l'a expliqué "cycycycyr", il ne semble pas pouvoir avoir 2 fichiers ouverts en même temps (en écriture).
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
j'ai oublié les closefile

Code : Tout sélectionner
ReadFile(0,"Texte.txt")
While Eof(0)=0
Buffer$ = ReadString(0)
If Buffer$="to>"
FileCounter+1
CreateFile(FileCounter,"Fichier-"+Str(FileCounter)+".txt")
Buffer$ = ReadString(0)
While Buffer$ <> "<to"
WriteStringN(FileCounter,Buffer$)
Buffer$ = ReadString(0)
Wend
If IsFile(FileCounter) and FileCounter <>0 : CloseFile(FileCounter) : EndIf
EndIf
Wend
closefile(0)
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
pareil et çà dure depuis 3ans.Kwai chang caine a écrit :@Droopy
Et bah moi, c'est moi qui est imposé a mon boss le PureBasic.
Pourvu que ça dure ...

faut dire que quand on me demande quelquechose même balaise, j'arrive à pondre le truc. et c'est largement grace à la communauté et ma persévérance.
du coup, mes patrons ne se posent meme pas la question du langage. les softs/fonctionnalités demandés sont là alors tout va bien.
sinon voici une petite solution au problème posé.
ca ressemble beaucoup au code de cpl bator de toutes facons :
ca ressemble beaucoup au code de cpl bator de toutes facons :
Code : Tout sélectionner
#ENTREE = 0
#SORTIE = 1
#SEPARATEUR = "to"
If ReadFile(#ENTREE, "fichier.txt")
While Not Eof(#ENTREE)
ligne$ = ReadString(#ENTREE)
If ligne$ = #SEPARATEUR
compteur + 1
If IsFile(#SORTIE) : CloseFile(#SORTIE) : EndIf
CreateFile(#SORTIE, "fichier" + Str(compteur) + ".txt")
Else
If IsFile(#SORTIE) : WriteStringN(#SORTIE, ligne$) : EndIf
EndIf
Wend
CloseFile(#ENTREE)
EndIf
suite
Bonjour
Deja merci a tous pour vos reponses cela me donne une bonne piste
le fait en plus est que mon caratere separeteur est le caratere ascii chr(12)
je n'arrive pas a le trouver ,le probeme etant du a la fonction readstring qui prend toute la ligne jusqu'au retour a la ligne et apres il passe a la ligne suivnate ,mon ficher texte vient du monde unix est contient enormement de retour a la ligne
en bref
est ce qui' existe une fonction qui lit l'integralite de fichier ?
est ce qu'il existe un moyen sur pour reconnaitre le charactere asii 12 ou ff comme delimiteur ?
MERCI ENCORE
Merci beaucoup
Deja merci a tous pour vos reponses cela me donne une bonne piste
le fait en plus est que mon caratere separeteur est le caratere ascii chr(12)
je n'arrive pas a le trouver ,le probeme etant du a la fonction readstring qui prend toute la ligne jusqu'au retour a la ligne et apres il passe a la ligne suivnate ,mon ficher texte vient du monde unix est contient enormement de retour a la ligne
en bref
est ce qui' existe une fonction qui lit l'integralite de fichier ?
est ce qu'il existe un moyen sur pour reconnaitre le charactere asii 12 ou ff comme delimiteur ?
MERCI ENCORE
Merci beaucoup
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
est ce qu'il existe un moyen sur pour reconnaitre le charactere asii 12 ou ff comme delimiteur ?
Oui si tu lis byte par byte
à toi de tester si asc(readbyte(tonfichier)) = 12
Oui si tu lis byte par byte
à toi de tester si asc(readbyte(tonfichier)) = 12
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net