IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

table memoire commence par la 2eme ligne et ecriture dans fichier text


Sujet :

WinDev

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 20
    Points : 1
    Points
    1
    Par défaut table memoire commence par la 2eme ligne et ecriture dans fichier text
    Bonjour à tous.

    1ere Question
    en chargeant un fichier text dans ma table memoire Table1 ,je trouve que l’écriture se commence à partir de la deuxième ligne de la table et nom la première ligne .comment remédier à cela ?

    2eme Question

    comment pouvoir ajouter à ce fichier text deux lignes spécifiques ,une ligne au début du fichier qui représente l’entête ,et l'autre ligne à la fin du fichier et qui représente le bas

    code utilisé pour les 2 Question:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    idfichier est un entier
    bResultat est un booléen
    sSligne est une chaîne
    idfichier=fOuvre(SAI_fichier,foLectureEcriture)
    SI idfichier<> -1 ALORS
    	TANTQUE sSligne <> EOT ET sSligne <> " "
    		TableAjoute(TABLE_Table1," "+TAB+sSligne[[1 sur 24]]+TAB+sSligne[[25 sur 20]]+TAB+sSligne[[45 sur 30]]+TAB+sSligne[[75 sur 70]]+TAB+sSligne[[145 sur 15]]+TAB+" "+TAB+sSligne[[160 sur 14]])
    		POUR TOUTE LIGNE DE TABLE_Table1
    			TABLE_Table1.COL_Colonne1=NumériqueVersChaîne(TABLE_Table1,"06d")
    			TABLE_Table1.COL_Colonne7=NumériqueVersChaîne(TABLE_Table1.COL_Colonne6,"015d")
    		FIN
    		sSligne=fLitLigne(idfichier)
    	FIN
    FIN
    fFerme(idfichier)
    Merci de m'aider à trouver la solution........Merci mille fois

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 91
    Points : 70
    Points
    70
    Par défaut
    Essai de lire ton fichier avant d'entrer dans la boucle. C'est ce qu'on nous dit de faire en cours d'algo et j'ai rencontrer un problème similaire (mais pas pour les fichiers).

    En attendant que quelqu'un t'aide un peu plus, tu peut toujours tester.

  3. #3
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    bonjour,

    Sannazzarotiti a raison tu n'as pas initialiser sSligne avant ton premier tableajoute donc sSligne est une chaine vide.

    Ensuite dans ton test de tantque tu vérifie si sSligne <> " "
    Est tu sur que tu veux arrêter ta boucle si ta ligne correspond à un caractère espace?

    Il faut aussi penser, en plus de la recherche dans l'aide, de faire le débogage du projet pas à pas. Ainsi tu te serai rendu compte de ta non initialisation de ta variable.

    Bon courage et bonne lecture
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    Comment initialiser sSligne avant le premier Tableajout

    est ce que c est comme cà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sSligne=1
    // la boucle

  5. #5
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    tout simplement en faisant :

    sSligne=fLitLigne(idfichier)

    avant le TANTQUE !

    à bientôt,

    Nicolas

  6. #6
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Non tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sSligne=fLitLigne(idfichier)
    avant ta boucle tantque ainsi tu lira d'abord une ligne puis tu rentera dans ta boucle...
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup , je vais tester ce soir et je vous tiendrais au courant

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Bonjour mes amis

    d'abord merci pour votre aide , effectivement c’était l'initialisation du fichier text qui pose le problème ,c'est réglé.

    Pour l’écriture dans le fichier au début et à la fin , j'ai réussi à ajouter la ligne de la fin avec FecritLigne() puisque elle ajoute automatiquement à la fin du fichier.
    Mais pour le début je me suis bloqué , comment dire à Windev d'aller ajouter(inserer) une ligne tout à fait au debut du fichier(1 ere ligne).j'ai trouvé dans l'aide la fonction Fpostionne() ,je sais pas si ça peut sert à quelque chose ,si c'est oui merci de m'aider à formuler le bout de code ......merci..merci

  9. #9
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Bonjour,

    Dans les exemples de l'aide de Fpositionne il y a un exemple qui explique comment écrire une chaine de caractère à une position donné.
    Cela devrai résoudre ton problème.
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Bonjour les amis

    je continue à battre pour écrire la fameuse ligne de début dans mon fichier text ,mais je n'ai pas arrivé au bout du chemin.

    j'ai utilisé :

    - Fpositionne(idfichier,0,fpDébut) ,ça écrit la ligne au début mais ça déforme la ligne qui suit ,ce qui est non souhaitable.

    - Fpostionne(idfichier,-1,fpDébut),ça écrit aussi la ligne mais à la fin du fichier ,ce n'est pas ça encore le but.

    je vous expose la situation par un exemple :

    j'ai le fichier de text suivant :

    000001555 855588555bonjours
    552211445 895557755bonjours
    225511225 785888888bonjours


    je veux ajouter au début du mon fichier une ligne contenant ex :77777nom pour obtenir :

    77777nom
    000001555 855588555bonjours
    552211445 895557755bonjours
    225511225 785888888bonjours


    mais windev m'a donné :

    - avec Fpositionne(idfichier,0,fpDébut)

    77777nom
    5 855588555bonjours
    552211445 895557755bonjours
    225511225 785888888bonjours


    - avec Fpostionne(idfichier,-1,fpDébut)

    000001555 855588555bonjours
    552211445 895557755bonjours
    225511225 785888888bonjours
    77777nom


    A lors si vous avez une idée pour régler ce probleme ,je suis preneur ,et désolé d'avoir été trop long dans mes explications. Merci Merci Merci

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Je connais une méthode "bourrin", et il y a peut-être plus efficace:
    1. Tu charges le contenu de ton fichier dans une variable avec fChargeTexte()
    2. Tu ajoutes ta chaines de caractères au contenu (une simple concaténation de chaine)
    3. Tu sauves le tout avec fSauveTexte()

    Bourrin, mais efficace...

    Tatayo.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 91
    Points : 70
    Points
    70
    Par défaut
    Je trouve pas sa bourin moi XD

    (Je n'est jamais manipuler les fichiers sur windev).
    A mon avis, si windev réagi comme sa il n'y a que deux solutions :
    - Un moyen de choisir son mode d'écriture si windev le permet (à l'ouverture ou l’écriture avec un parametre en plus ?)
    - Sinon la solution de tatayo simple et efficace (et pas prise de tête)

  13. #13
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 329
    Points : 3 841
    Points
    3 841
    Par défaut
    Bonjour,

    Tu utilises fEcritLigne(..) ou fEcrit(..) après le fPositionne(..) ?

  14. #14
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    bonjour ,

    oui c'est ce que j'ai fait ,j'ai utilisé FecritLigne() après Fpositionne() ,mais ça ma donnée le résultat cité précédemment.moi je cherche pas ça.

    Merci....mes amis

  15. #15
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 953
    Points : 9 283
    Points
    9 283
    Par défaut
    Bonjour,

    la méthode bourrin de tatayo est à mon avis la meilleure. Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MonTexteEnChaine est une chaine
    MonTexteEnChaine = fChargeTexte("MonfichierTexte.txt")
     MonTexteEnChaine = "LachaineARajouter" + RC + MonTexteEnchaine
    fSauveTexte("MonfichierTexte.txt", MonTexteEnChaine)
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

Discussions similaires

  1. [AC-2013] Lister dans un formulaire les tables qui commence par "toto"
    Par morinxav dans le forum VBA Access
    Réponses: 4
    Dernier message: 16/04/2015, 12h59
  2. Réponses: 1
    Dernier message: 03/07/2009, 09h37
  3. Réponses: 3
    Dernier message: 12/08/2008, 13h26
  4. [VB 2.0] Lire ligne x à y dans fichier texte
    Par cacalex dans le forum VB.NET
    Réponses: 7
    Dernier message: 09/02/2007, 10h00
  5. Réponses: 4
    Dernier message: 26/01/2006, 12h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo