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

Bases de données Delphi Discussion :

Récuperer les données d'un fichier txt pour les insérer dans une Table


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 42
    Points : 22
    Points
    22
    Par défaut Récuperer les données d'un fichier txt pour les insérer dans une Table
    Bonjour,
    voilà j'ai un fichier txt (forme.txt), et j'aime bien savoir s'il y a une méthode pour récupérer les données de ce fichier et les insérer dans une Table.
    à vrai dire mon problème c'est que je ne sais pas comment les enregistrements dans ce fichier txt sont organisés (Records ou tout simplement séparés par des Tabulations).

    Merci d'avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Fxg
    Fxg est déconnecté
    Membre éclairé
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 510
    Points : 837
    Points
    837
    Par défaut
    A ouvrir avec un éditeur de texte et là on voit que le prmeier 'champ' est sur 3 caractère puis le deuxième sur 49 caractères et le dernier sur 20 caractères

    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
    16
    17
    18
    19
    20
    procedure TForm1.SpeedButton1Click(Sender: TObject);
    Var F: TextFile;
    Stg,stg1,stg2,stg3:String;
    begin
    Memo1.Clear;
    Memo2.clear;
    Memo3.clear;
    AssignFile(F,ExtractFilePath(Application.ExeName)+'forme.txt');
    Reset(F);
    repeat
    Readln(F,Stg);
    stg1:=copy(stg,1,3);
    stg2:=copy(stg,4,49);
    stg3:=copy(stg,54,20);
    Memo1.Lines.Add(Stg1);
    Memo2.Lines.add(stg2);
    Memo3.Lines.add(stg3);
    until EOF(F);
    CloseFile(F);
    end;
    Sur le Form il y a un SpeedButton et 3 Memos. Le fichier Formes.txt est dnas le même répertoire que le projet.
    avec stg1 stg2 et stg3 qui contiennent les 3 valeurs de chacune des lignes à inclure après dans les champs de la table.

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par Fxg Voir le message
    A ouvrir avec un éditeur de texte et là on voit que le prmeier 'champ' est sur 3 caractère puis le deuxième sur 49 caractères et le dernier sur 20 caractères

    Sur le Form il y a un SpeedButton et 3 Memos. Le fichier Formes.txt est dnas le même répertoire que le projet.
    avec stg1 stg2 et stg3 qui contiennent les 3 valeurs de chacune des lignes à inclure après dans les champs de la table.
    Je vous remercie... mais c vraiment astucieux ...de manipuler directement les Strings.

  4. #4
    Fxg
    Fxg est déconnecté
    Membre éclairé
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 510
    Points : 837
    Points
    837
    Par défaut
    un petit clic sur [Resolu] alors ?

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    j'ai essayé la méthode sur un fichier de 8Mo de données... ça marche mais l'opération d'insertion des données dans la table est très très lente....donc la question se pose... est-ce qu'il y a un remède pour accélérer le traitement des Strings et les insérer dans la Table ?

  6. #6
    Membre habitué Avatar de samaury
    Homme Profil pro
    Chevalier Jedi
    Inscrit en
    Mars 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Chevalier Jedi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2008
    Messages : 114
    Points : 141
    Points
    141
    Par défaut
    1 - Tu utilises quoi comme base?
    2 - Un bout de code de ce que tu fais actuellement pourrais nous aider...à t'aider.
    Pensons bien, pensons bio

  7. #7
    Membre chevronné Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Points : 1 819
    Points
    1 819
    Par défaut
    Citation Envoyé par sandokhane Voir le message
    j'ai essayé la méthode sur un fichier de 8Mo de données... ça marche mais l'opération d'insertion des données dans la table est très très lente....donc la question se pose... est-ce qu'il y a un remède pour accélérer le traitement des Strings et les insérer dans la Table ?
    - 8 Mo = 8 000 000 Octets
    Citation Envoyé par Fxg Voir le message
    A ouvrir avec un éditeur de texte et là on voit que le prmeier 'champ' est sur 3 caractère puis le deuxième sur 49 caractères et le dernier sur 20 caractères
    Taille d'un enregistrement:
    - 3+49+20=72
    Nombre d'enregistrements:
    8 000 000/72 ~ 100 000

    Désolé, j'ai rien du comprendre à tes explications, j'ai pas regardé ce qu'il y avait dans le fichier de 8Mo.

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Points : 0
    Points
    0
    Par défaut
    Salut tout le monde;
    j'ai le même problème que sandokhane sauf que moi j'utilise des tables de type Paradox 7 et et que je veut extraire les données a partir d'un fichier texte qui se trouve dans un CD-ROM (lecteur CD)

    Aidez moi SVP

  9. #9
    Membre habitué Avatar de samaury
    Homme Profil pro
    Chevalier Jedi
    Inscrit en
    Mars 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Chevalier Jedi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2008
    Messages : 114
    Points : 141
    Points
    141
    Par défaut
    Salut Bingo25
    Tu as testé les solutions proposées dans cette discussion?
    Si oui ou est-ce que tu bloques exactement?
    Si non... commence par mettre en oeuvre ces solutions, surtout la dernière : Packed Record + TFileStream
    Pensons bien, pensons bio

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 2
    Points : 0
    Points
    0
    Par défaut
    Quelle est la fonction qui renvoie la partie décimal d'un nombre?

  11. #11
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Citation Envoyé par Bingo25 Voir le message
    Quelle est la fonction qui renvoie la partie décimal d'un nombre?
    Delphi via la touche permet d'obtenir une aide et vous auriez trouvé que la fonction Frac répond à votre demande. function Frac(X: Extended): Extended;
    Philippe.

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/05/2014, 23h01
  2. [XL-2007] Récuperer les données d'un fichier et traiter les données
    Par kekefff dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/05/2014, 20h29
  3. [OpenOffice][Base de données] Récupérer les données d'un fichier .txt et les insérer dans une base de données
    Par frack dans le forum OpenOffice & LibreOffice
    Réponses: 9
    Dernier message: 05/08/2009, 10h52
  4. Réponses: 2
    Dernier message: 20/07/2008, 11h29
  5. Importer fichiers txt d'un dossier dans une table
    Par avantoux dans le forum Access
    Réponses: 16
    Dernier message: 28/12/2005, 12h13

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