Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Créer tableau dans fichier texte
#1
je veux creer un tableau dans fichier texte en windev comment faire
Répondre
#2
Question incompréhensible... revoir la question avec plus d'explications...

Un fichier TXT vers un fichier HF ou le contraire ?

Ne pas confondre une table avec un fichier, en Windev une table est un champ et non un fichier. Le fichier est une base de données HF dont le contenu est affiché dans une table.
Se souvenir et savoir sont deux choses différentes. Se souvenir, c'est garder en mémoire. En revanche, savoir signifie assimiler sans dépendre d'un modèle.

WD 4.1 => 23


Répondre
#3
j'ai programmé un état dont les données sont enregistrées dans un fichier texte.
Designation Quantité montant
Batterie c25 12 2500
Batterie Nokia 03 10000
Mon problème est que les données se déplacent dans le fichier texte a chaque fois que le libellé de la designation est long.
Que faire?
Répondre
#4
Mon problème est que les données se déplacent dans le fichier texte a chaque fois que le libellé de la designation est long.

A la saisie, c'est un simple champ texte ou un mémo texte qui est sauvé ?... y a-t-il des RC ?
Se souvenir et savoir sont deux choses différentes. Se souvenir, c'est garder en mémoire. En revanche, savoir signifie assimiler sans dépendre d'un modèle.

WD 4.1 => 23


Répondre
#5
c'est un champ texte plus des rc
Répondre
#6
Bon si tu veux sauver une ligne en tableau... (comme j'ai +/- compris), tu fais des colonnes séparées par des point-virgules.

Exemple, ligne de texte tableau à sauver: LigneTexte = "Colonne1;Colonne2;colonne3;colonne4;colonne5;"
fEcritLigne(LigneTexte)+RC

Pour relire il faut utiliser la fonction ExtraitChaine() ou les point-virgules servent de sépararteur de colonne.
LigneTexte = fLitLigne(..... )

Colonne1 = ExtraitChaine(LigneTexte,1,";")
Colonne2 = ExtraitChaine(LigneTexte,2,";")
...

C'est ça que tu veux ?

Voilà un exemple réel d'une procédure d'enregistrement d'une table vers un fichier txt crypté:
Code :
PROCEDURE SauveDocument()
// Déclaration des variables
sNomCheminFichier, sLigneLue sont des chaînes
nIdFichier, nResFermeFichier, i, n sont des entiers
bResEcriture est un booléen

// Sélection d'un fichier
SI gsMémoNomFichier = "" ALORS
        sNomCheminFichier = fSélecteur(gsRépertoirEnCours, "", ...
        "Sélectionner un fichier",...
        "Fichier facture (*.FAC)"+TAB+"*.fac"+RC+...
        "Fichier devis (*.DEV)"+TAB+"*.dev"+RC+...
        "Tous (*.*)"+TAB+"*.*","",fselCrée)
    SINON
        sNomCheminFichier = gsMémoNomFichier
FIN

// Création du fichier
nIdFichier = fCrée(sNomCheminFichier,foEcriture)
SI nIdFichier <> -1 ALORS
    // Écriture de l'entête document
    POUR i = 1 A 7
        bResEcriture = fEcritLigne(nIdFichier, Crypte({"SAI_Doc"+i},gsMotdepasse,crypteSécurisé))
        SI bResEcriture = Faux ALORS
            Erreur(ErreurInfo(errMessage))
            RETOUR
        FIN
    FIN
    // Nombre de ligne ajoutée        
    bResEcriture = fEcritLigne(nIdFichier, gnNbrLigne)
    SI bResEcriture = Faux ALORS
        Erreur(ErreurInfo(errMessage))
        RETOUR
    FIN
    // Ecriture du contenu document
    POUR i = 1 A gnNbrLigne
        sLigneLue = i+"|"+TABLE_Contenu[i][2]+"|"+TABLE_Contenu[i][3]+"|"+TABLE_Contenu[i][4]+"|"+...
                    TABLE_Contenu[i][5]+"|"+TABLE_Contenu[i][6]+"|"+TABLE_Contenu[i][7]+"|"+TABLE_Contenu[i][8]+"|"
        bResEcriture = fEcritLigne(nIdFichier, Crypte(sLigneLue,gsMotdepasse,crypteSécurisé))
        SI bResEcriture = Faux ALORS
            Erreur(ErreurInfo(errMessage))
            RETOUR
        FIN
    FIN
FIN
// Mémorise répertoir
gsRépertoirEnCours = sNomCheminFichier
// Sauvegarde si nouveau numéro de documemt
SauveNumero()
// On a rien frapper
gbFrappe = Faux

Et voilà le code de lecture pour remplir la table...
Code :
PROCEDURE OuvrirDocument()
// Déclaration des variables
sNomCheminFichier, sLigneLue sont des chaînes
nIdFichier,  nResFermeFichier, i, n sont des entiers

// On ferme le document actuel si existant
FermerDocument()

// Initialisation de la table de saisie des lignes document
POUR i = 1 A 200
    TableAjouteLigne(TABLE_Contenu)
FIN

// Remplissage de la combo Client
ListeSupprimeTout(SAI_Doc4)
POUR TOUT Clients SUR Nom
    ListeAjoute(SAI_Doc4,Clients.Nom + " " + Clients.Prénom + gLien(Clients.IDClients))
FIN

// Sélection d'un fichier
sNomCheminFichier = fSélecteur(gsRépertoirEnCours, "", ...
"Sélectionner un fichier",...
"Fichier devis (*.DEV)"+TAB+"*.dev"+RC+...
"Fichier facture (*.FAC)"+TAB+"*.fac"+RC+...
"Tous (*.*)"+TAB+"*.*","")
// Si on annule l'ouverture
SI sNomCheminFichier = "" ALORS RETOUR

// Ouverture du fichier
nIdFichier = fOuvre(sNomCheminFichier)
// Affichage du message d'erreur si l'ouverture n'a pas été effectuée
SI nIdFichier = -1 ALORS
    Erreur(ErreurInfo(errMessage))
SINON
    // Lecture des premières lignes du fichier
    POUR i = 1 A 7
        sLigneLue = fLitLigne(nIdFichier)
        {"SAI_Doc"+i} = Décrypte(sLigneLue,gsMotdepasse,crypteSécurisé)
        // On affiche l'adresse du client
        SI i = 6 ALORS ExécuteTraitement(SAI_Doc4,trtSélection)
    FIN
    // Lecture du nombre de ligne dans la table
    sLigneLue = fLitLigne(nIdFichier)
    n = Val(sLigneLue)
    // Autres lignes à lire ? Erreur de lecture ?
    POUR i = 1 A n
        // Lecture des lignes suivantes du fichier
        sLigneLue = fLitLigne(nIdFichier)
        // Affichage des lignes suivantes dans la table mémoire
        sLigneLue = Décrypte(sLigneLue,gsMotdepasse,crypteSécurisé)
        // Composition d'une ligne
        TableModifieLigne(TABLE_Contenu,i,...
                          ExtraitChaîne(sLigneLue,1,"|"),...
                          ExtraitChaîne(sLigneLue,2,"|"),...                
                          ExtraitChaîne(sLigneLue,3,"|"),...    
                          ExtraitChaîne(sLigneLue,4,"|"),...
                          ExtraitChaîne(sLigneLue,5,"|"),...
                          ExtraitChaîne(sLigneLue,6,"|"),...
                          ExtraitChaîne(sLigneLue,7,"|"),...
                          ExtraitChaîne(sLigneLue,8,"|"))
    FIN
    // Affichage du message d'erreur si la lecture n'a pas été effectuée
    SI sLigneLue = "" ALORS Erreur(ErreurInfo(errMessage))
    // Fermeture du fichier
    nResFermeFichier = fFerme(nIdFichier)
    SI nResFermeFichier = -1 ALORS
        // Affichage du message d'erreur si la fermeture n'a pas été effectuée
        Erreur(ErreurInfo(errMessage))
    FIN
FIN
// Mémorise le Nom et chemin du fichier
gsRépertoirEnCours = sNomCheminFichier
gsMémoNomFichier = sNomCheminFichier
// Affiche le titre
TitreEnCours("Gestion de facturation ["+ExtraitChaîne(gsMémoNomFichier,1,"\",DepuisFin)+"]")
// Affiche le nombre de ligne utilisée
CalculLigne()
// On a rien saisi
gbFrappe = Faux
// On se place su le premier plan
FEN_CreerDocument..Plan = 1
// On rend le menu Document actif
GriseMenu(FEN_CreerDocument..Plan)
// On donne la main à la table
DonneFocus(TABLE_Contenu)
Se souvenir et savoir sont deux choses différentes. Se souvenir, c'est garder en mémoire. En revanche, savoir signifie assimiler sans dépendre d'un modèle.

WD 4.1 => 23


Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  Comprendre le fichier texte Pemco 6 2,432 05-03-2012, 08:09 AM
Dernier message: TheDuke
  fichier texte jodaniel 1 1,834 18-10-2011, 03:51 PM
Dernier message: herve63
  dessiner dans une tableau...??? Guest 0 7,455 02-02-2006, 09:22 AM
Dernier message: Guest
  fichier texte Guest 1 1,441 23-12-2004, 08:50 PM
Dernier message: tunidev_mybb_import2
  comment recuper des donnees d'un fichier texte Guest 3 2,485 01-04-2004, 11:21 AM
Dernier message: Eric

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)