Pages: 1
- Sujet précédent - [MapBasic] Lire un fichier avec un sépateur qui n'est pas la virgule - Sujet suivant
#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
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
Pages: 1
- Sujet précédent - [MapBasic] Lire un fichier avec un sépateur qui n'est pas la virgule - Sujet suivant