PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV (earlier versions) → Problème import fichier texte
Problème import fichier texte
Started by Ludwig, Feb., 07 2024 10:52 AM - 9 replies
Registered member
8 messages
Posted on February, 07 2024 - 10:52 AM
Bonjour à tous,

Je rencontre un problème lors d'un import d'un fichier texte vers un fichier de données.

HImporteTexte("Performance", "C:\Fichier_Analyse.txt", "", ";", hImpIgnorePremièreLigne, "JAUGE")


j'ai ce message d'erreur : "En attente du délimiteur de début de chaîne <偐>."

Je ne sais pas comment procéder pour parer cette erreur.

Pourrais-je avoir un élément de réponse, svp ?

Merci d'avance et bonne journée.
Registered member
102 messages
Popularité : +1 (1 vote)
Posted on February, 07 2024 - 11:53 AM
bonjour,

ma première idée serait peut être de vérifier l'encodage de votre fichier au vu du caractère affiché dans le message
Registered member
8 messages
Posted on February, 07 2024 - 2:03 PM
Bonjour Silverin,

Merci pour ton retour.

Le fichier d'analyse est créé comme suit :
Je charge le contenu d'un csv
sFichierCSV est une chaîne

// Charge les données du fichier
sFichierCSV = fChargeTexte(sCheminFichier)


Je charge les données dans un tableau pour faire différents calculs
// Charge les données dans un tableau
CSVVersTableau(sFichierCSV, Montableau, ";")


Je charge les données recalculées du tableau dans un fichier texte
// Sauvegarde les données dans un fichier texte nommé Fichier_Analyse.txt
sFichierCSV = TableauVersCSV(Montableau, ";")

fSauveTexte("C:\APPLI_AELYS\APPLI_AELYS\PERFORMANCE\EXEMPLE\Fichier_Analyse.txt", sFichierCSV)


Encore merci
Registered member
3,347 messages
Popularité : +93 (137 votes)
Posted on February, 07 2024 - 2:09 PM
Salut
Je pense aussi que c'est un fichier en UTF-8 ou Unicode
Il ne trouve pas le caractère servant de séparateur.
Il serait utile de voir les fonctions de conversion
Tel que Unicodeversansi
Registered member
8 messages
Posted on February, 07 2024 - 2:26 PM
J'ai déclaré ma variable sFichierCSV en une chaîne UNICODE.
Je n'ai plus le message d'erreur mais l'import dans le fichier de données ne se fait pas.

Avec Unicodeversansi l'erreur est toujours présente. :(
Registered member
102 messages
Popularité : +1 (1 vote)
Posted on February, 07 2024 - 3:43 PM
essayer d'ouvrir votre fichier avec un éditeur de texte comme NotePad++ pour voir l'encodage, cela vous permettrait de voir quel fonction utiliser pour la conversion
Registered member
8 messages
Posted on February, 07 2024 - 6:27 PM
J'ai procédé différemment, je boucle sur le fichier texte, fais mes différents calculs et fais un hAjoute.
C'est fonctionnel.
En revanche, dès que le fichier texte fait plus de 400000 lignes, rien ne se passe.
Cela bloque.
Il existe une limite de lignes avec la fonction CSVVersTableau() ?

Merci ;)
Registered member
3,347 messages
Popularité : +93 (137 votes)
Posted on February, 07 2024 - 8:32 PM
Salut
Il se peut que ce soit fchargetexte a avoir une limite
Regarde plutôt la méthode 1 sur cette page
https://doc.pcsoft.fr/fr-FR/?20056&name=CLF_Lire_dans_un_fichier_texte_ou_CSV
Registered member
3,891 messages
Popularité : +227 (347 votes)
Posted on February, 09 2024 - 4:40 PM
Bonjour,
Ludwig a écrit :
Il existe une limite de lignes avec la fonction CSVVersTableau() ?

En théorie non, mais si tu compiles en 32 bits, tu es limité par la barre des 2Go.
Tu peux contourener ce problème en utilisant fChargeBuffer qui permet de ne récupérer qu'une partie du fichier texte.

--
Il y a peut être plus simple, mais, ça tourne
Registered member
8 messages
Posted on February, 09 2024 - 9:42 PM
Bonsoir à tous,

Encore merci pour vos retours.

Je ne suis finalement pas passé par un tableau. Je recalcule en bouclant sur la chaine en utilisant chainedécoupe.
C'est fonctionnel et peut traiter plus de 800000 lignes en 2 minutes.
Ca me convient et j'arrive à faire l'import dans le fichier de données. ;)

Encore merci et bonne soirée.