banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Thu 28 August 2008 15:31

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

[MapBasic] Lire un fichier avec un sépateur qui n'est pas la virgule

Bonjour,

J'ai le fichier texte suivant sur deux lignes:

toto¤tata¤01
titi¤tutu@02

Avec des lignes de codes mapbasic, je sais qu'on peut lire un fichier avec la commande INPUT. Le problème est que cette commande utilise comme séparateur entre les colonnes la virgule. Donc par exemple, Input me retourne pour la première ligne :

toto¤tata¤01

alors que j'aurais besoin de récupérer "toto", "tata" et les autres valeurs dans des variables distinctes.

Est-ce que quelqu'un connaîtrait un moyen de changer le séparateur par défaut pour la commande INPUT? Ou peut être même une manière différente de lire un fichier?

Merci par avance

Hors ligne

 

#2 Thu 28 August 2008 15:54

Marc
Membre
Lieu: Lorient
Date d'inscription: 24 Jun 2005
Messages: 988

Re: [MapBasic] Lire un fichier avec un sépateur qui n'est pas la virgule

Bonjour,

Je ne connait pas bien mapbasic, mais peux tu modifier ton fichier texte ?
Dans ce cas tu fait un rechercher/remplacer en l'ouvrant dans le bloc note de windows et tu normalise tes séparateurs avec des virgules.


Marc ROSSI

Hors ligne

 

#3 Thu 28 August 2008 15:58

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

Re: [MapBasic] Lire un fichier avec un sépateur qui n'est pas la virgule

Ce serait trop beau si je pouvais faire ça... En fait c'est un fichier que me fournit un client, et qui veut absolument ce séparateur

Hors ligne

 

#4 Thu 28 August 2008 16:04

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: [MapBasic] Lire un fichier avec un sépateur qui n'est pas la virgule

Salut,

Je ne vois pas le problème dés que c'est sous Mapinfo il n'y a plus de séparateur.
A+

Hors ligne

 

#5 Thu 28 August 2008 16:38

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

Re: [MapBasic] Lire un fichier avec un sépateur qui n'est pas la virgule

Comment ça?!
Sachant que mon but est de récuperer des données de ce fichier pour les traiter dans mon code

Hors ligne

 

#6 Thu 28 August 2008 16:54

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MapBasic] Lire un fichier avec un sépateur qui n'est pas la virgule

Une fois la ligne obtenue (variable str) par Line Input (qui lit toute la ligne et néglige les séparateurs: seul le retour charriot de fin de ligne est pris en compte) et pas par Input, il faut la découper en recherchant la position des séparateurs ("x" ou "@"...ou d'autres ?)
Ceci par la fonction InStr(position, string, substring)
soit pos1=InStr (1,"x",str), puis pos2=InStr (pos1+1,"x",str) pour ta première ligne
Puis extraire les données par les fonction Mid$(), Left$(),  Right$() et Len()
soit var1=Left$(str,pos1-1), puis var2=Mid$(str,pos1+1,pos2-pos1-1) puis var3=Rightt$(str,Len(str)-pos2)

Hors ligne

 

#7 Thu 28 August 2008 16:56

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: [MapBasic] Lire un fichier avec un sépateur qui n'est pas la virgule

Re,

Oui, comme je pensais que tu voulais tes donées dans une table ;-) (Forum d'à côté)
Est si tu créais un tableau à travers ton code.
Il me semble que j'ai déjà vu passer des codes à ce sujet.
A+

Hors ligne

 

#8 Thu 28 August 2008 17:17

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

Re: [MapBasic] Lire un fichier avec un sépateur qui n'est pas la virgule

Nickel !
Une nouvelle fois merci Maurice pour ton aide!!

Hors ligne

 

#9 Fri 29 August 2008 15:04

chiche31
Participant actif
Date d'inscription: 20 Aug 2008
Messages: 64

Re: [MapBasic] Lire un fichier avec un sépateur qui n'est pas la virgule

Par contre avec ce système, on part du principe qu'il n'y aura que 3 colonnes par ligne (donc deux éléments séparateurs).
N'y a t-il pas un moyen de faire ça pour un nombre X d'éléments séparateurs?

Hors ligne

 

#10 Fri 29 August 2008 15:50

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MapBasic] Lire un fichier avec un sépateur qui n'est pas la virgule

On peut, c'est tout le sel de la programmation smile
Pour ça il faut savoir que si posn=InStr (posn-1+1,"x",str) renvoie zéro, c'est qu'il n'y a plus de séparateur "x" après la position n-1

Hors ligne

 

Pied de page des forums

Powered by FluxBB