Recuperer ligne précedente
Fermé
haifa
-
6 juin 2011 à 16:34
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 9 juin 2011 à 17:13
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 9 juin 2011 à 17:13
A voir également:
- Recuperer ligne précedente
- Recuperer message whatsapp supprimé - Guide
- Recuperer video youtube - Guide
- Aller à la ligne excel - Guide
- Partager photos en ligne - Guide
- Comment récupérer un compte facebook piraté - Guide
3 réponses
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
9 juin 2011 à 00:01
9 juin 2011 à 00:01
Bonsoir,
Je ne connais pas vb.net mais je peux peut-être t'aider à trouver une solution.
Le fichier lu avec sr.readline est-il un fichier à accès direct (accès aux enregistrements par clés) ou séquentiel (accès aux enregistrements dans l'ordre où ils se présentent) ou encore séquentiel indexé (les deux modes d'accès réunis) ?
Si le fichier est à organisation séquentielle et même s'il ne l'est pas d'ailleurs, je pense que le plus simple est encore que ton programme crée un nouveau fichier qui contiendra les nouveaux enregistrements ayant fait l'objet d'une concaténation.
Dis-moi ce que tu en penses, on pourra trouver un algorithme de traitement.
Question:
Dans l'exemple que tu a joint :
1500 texteeeeeeeeeeeee
texte333333333333
text44444444444
1501 text1111111111111
texxxxxxxxxxxxxxxxxxt
Le résultat doit être:
1500 texteeeeeeeeeeeeetexte333333333333
text44444444444
1501 text1111111111111texxxxxxxxxxxxxxxxxxt
où bien
1500 texteeeeeeeeeeeeetexte333333333333text44444444444
1501 text1111111111111texxxxxxxxxxxxxxxxxxt
Je ne connais pas vb.net mais je peux peut-être t'aider à trouver une solution.
Le fichier lu avec sr.readline est-il un fichier à accès direct (accès aux enregistrements par clés) ou séquentiel (accès aux enregistrements dans l'ordre où ils se présentent) ou encore séquentiel indexé (les deux modes d'accès réunis) ?
Si le fichier est à organisation séquentielle et même s'il ne l'est pas d'ailleurs, je pense que le plus simple est encore que ton programme crée un nouveau fichier qui contiendra les nouveaux enregistrements ayant fait l'objet d'une concaténation.
Dis-moi ce que tu en penses, on pourra trouver un algorithme de traitement.
Question:
Dans l'exemple que tu a joint :
1500 texteeeeeeeeeeeee
texte333333333333
text44444444444
1501 text1111111111111
texxxxxxxxxxxxxxxxxxt
Le résultat doit être:
1500 texteeeeeeeeeeeeetexte333333333333
text44444444444
1501 text1111111111111texxxxxxxxxxxxxxxxxxt
où bien
1500 texteeeeeeeeeeeeetexte333333333333text44444444444
1501 text1111111111111texxxxxxxxxxxxxxxxxxt
bonjour,
mon fichier est à accès séquentielle je dois avoir le résultat :
1500 ; texteeeeeeeeeeeee ; texte333333333333 ; text44444444444
1501; text1111111111111 ; texxxxxxxxxxxxxxxxxxt
mon fichier est à accès séquentielle je dois avoir le résultat :
1500 ; texteeeeeeeeeeeee ; texte333333333333 ; text44444444444
1501; text1111111111111 ; texxxxxxxxxxxxxxxxxxt
cchristian
Messages postés
921
Date d'inscription
lundi 21 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2012
131
9 juin 2011 à 17:13
9 juin 2011 à 17:13
Bonjour,
Il faut que le programme:
- Définisse et initialise à la valeur nulle une variable de sauvegarde (SAVE_ENREG) de taille suffisante pour contenir un enregistrement correspondant à plusieurs concaténations de lignes.
LECTURES DU FICHIER (si fin de fichier aller à: FIN DE TRAITEMENT (Fin de fichier))
- Lise chaque enregistrement du fichier en input.
- Vérifie si l'enregistrement n'est pas numéroté et doit donc être concaténé (avec le précédent).
- S'il est numéroté ECRIRE la SAUVEGARDE (SAVE_ENREG) dans le fichier en output. SAUF SI SAVE_ENREG est égale à la valeur nulle servant à l'initialiser (cas 1ère fois.).
- Initialise (à une valeur nulle) SAVE_ENREG et sauvegarde l'enregistrement lu dans SAVE_ENREG.
Relise le fichier en input.
- S'il n'est pas numéroté effectuer la concaténation avec l'enregistrement lu et SAUVEGARDé dans la variable SAVE_ENREG (lors de la précédente itération).
Relise le fichier en input.
FIN DE TRAITEMENT (Fin de fichier)
- Ecrive la dernière SAUVEGARDE dans le nouveau fichier.
SCENARIO:
1ere lecture :
ENREG. LU : 1500 texteeeeeeeeeeeee
NE PAS ECRIRE SAVE_ENREG = nul
SAVE_ENREG = 1500 texteeeeeeeeeeeee
2eme lecture :
ENREG. LU : texte333333333333
CONCATENATION SAVE_ENREG = 1500 textee.....texte333333333333
3eme lecture :
ENREG. LU : text44444444444
CONCAT. SAVE_ENREG = 1500 textee...texte3333...text44444444444
4eme lecture :
ENREG. LU : 1501 text1111111111111
ECRIRE SAVE_ENREG = 1500 textee...texte3333...text44444444444
SAVE_ENREG = 1501 text1111111111111
5eme lecture :
ENREG. LU : texxxxxxxxxxxxxxxxxxt
CONCAT. SAVE_ENREG = 1501 text1111111111111texxxxxxxxxxxxxxxxxxt
6eme lecture :
ENREG. LU : FIN DE FICHIER
ECRIRE SAVE_ENREG = 1501 text1111111111111texxxxxxxxxxxxxxxxxxt
Ca demande à être testé. J'ai présumé qu'il peut exister dans le fichier en input 2 enregistrements consécutifs numérotés (dans ce cas là ils ne sont pas concaténés) et que le 1er enregistrement peut ne pas être numéroté. Egalement que le fait de concaténer un enregistrement l'annule en tant que tel dans le fichier en output.
Il faut que le programme:
- Définisse et initialise à la valeur nulle une variable de sauvegarde (SAVE_ENREG) de taille suffisante pour contenir un enregistrement correspondant à plusieurs concaténations de lignes.
LECTURES DU FICHIER (si fin de fichier aller à: FIN DE TRAITEMENT (Fin de fichier))
- Lise chaque enregistrement du fichier en input.
- Vérifie si l'enregistrement n'est pas numéroté et doit donc être concaténé (avec le précédent).
- S'il est numéroté ECRIRE la SAUVEGARDE (SAVE_ENREG) dans le fichier en output. SAUF SI SAVE_ENREG est égale à la valeur nulle servant à l'initialiser (cas 1ère fois.).
- Initialise (à une valeur nulle) SAVE_ENREG et sauvegarde l'enregistrement lu dans SAVE_ENREG.
Relise le fichier en input.
- S'il n'est pas numéroté effectuer la concaténation avec l'enregistrement lu et SAUVEGARDé dans la variable SAVE_ENREG (lors de la précédente itération).
Relise le fichier en input.
FIN DE TRAITEMENT (Fin de fichier)
- Ecrive la dernière SAUVEGARDE dans le nouveau fichier.
SCENARIO:
1ere lecture :
ENREG. LU : 1500 texteeeeeeeeeeeee
NE PAS ECRIRE SAVE_ENREG = nul
SAVE_ENREG = 1500 texteeeeeeeeeeeee
2eme lecture :
ENREG. LU : texte333333333333
CONCATENATION SAVE_ENREG = 1500 textee.....texte333333333333
3eme lecture :
ENREG. LU : text44444444444
CONCAT. SAVE_ENREG = 1500 textee...texte3333...text44444444444
4eme lecture :
ENREG. LU : 1501 text1111111111111
ECRIRE SAVE_ENREG = 1500 textee...texte3333...text44444444444
SAVE_ENREG = 1501 text1111111111111
5eme lecture :
ENREG. LU : texxxxxxxxxxxxxxxxxxt
CONCAT. SAVE_ENREG = 1501 text1111111111111texxxxxxxxxxxxxxxxxxt
6eme lecture :
ENREG. LU : FIN DE FICHIER
ECRIRE SAVE_ENREG = 1501 text1111111111111texxxxxxxxxxxxxxxxxxt
Ca demande à être testé. J'ai présumé qu'il peut exister dans le fichier en input 2 enregistrements consécutifs numérotés (dans ce cas là ils ne sont pas concaténés) et que le 1er enregistrement peut ne pas être numéroté. Egalement que le fait de concaténer un enregistrement l'annule en tant que tel dans le fichier en output.