Conversion AnsiString en TString [Résolu]

Signaler
Messages postés
31
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
21 mars 2007
-
Messages postés
31
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
21 mars 2007
-
Bonjour,

j'utilise le logiciel builder c++ 5.

Je lis dans un fichier une liste de nom et je voudrais afficher les noms dans un combobox.
Je lis bien dans mon fichier les noms car je les affiches dans un edit pour vérifier mais quand je veux les mettre dans mon combobox il y a un pb :/

Voici le bout de mon code

char *couple;//créé dynamiquement a la bonne taille avant de le mettre dans le combo
int nb_couple;
ComboBox1->Items[nb_couple]=couple;

Quand je compile j'ai ce probleme : "impossible de trouver une correspondance pour Tstring::operator=(AnsiString)"
Pouvez vous m'aider svp ?

Puisque j'y suit lol je vais demmander une autre chose lol :D

je voudrais que quand j'ouvre mon fichier, le curseur se place juste après le dernier élement du fichier mais j'ai pas trouvé la fonction :/
Sinon quand je test la fin du fichier avec Eof(desc) ou Feof(desc), il me dit que la fonction n'est pas définie :/ alors que j'ai bien rajouter les includes.

Que faire ?

Merci par avance :P

9 réponses

Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
Salut ,
j'utilise borland aussi donc je vais pouvoir t'aider ;)

première ment AnsiString est un composant propre a borland,
deuxièmement avec ComboBox1->Items[nb_couple]=couple;
couple doit etre un TSring.

tu a deux solution la première la plus simple mais pas la plus pratique
ComboBox1->Items->Add(couple); //rajoutera le texte de couple a la fin de la liste

ou la deuxième je pense la meilleur pour toi:
ComboBox1->Items->Strings[a]=couple;//où a est la position dans la liste
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
c'est
#include qu'il te faut
Messages postés
31
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
21 mars 2007

Salut,

merci de ta réponse :)
Les 2 solutions me conviennent lol :)

Et sinon tu n'aurais pas une idée pour la fin de fichier :/

Car il me dit que Eof et Feof ne sont pas defini alors que j'ai bien rajouté le bon include :/

Merci encore une foi :D
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
je ne connais pas eof et feof
mais en allant jetter un oeil,j'ai remarquer qu'il ya deux fonction Eof et eof (attention les majuscule font la différence).
toi ici tu aurait apparement besoin de eof(),car Eof() est utilisé pour les base de données!
Messages postés
31
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
21 mars 2007

Non, j'ai tout essayé, Eof,eof,Feof,feof et rien ne marche >>"appel a une fonction non definie" pourtant j'ai rajouter stdio.h :/
Messages postés
31
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
21 mars 2007

Merci bien :D dans mon aide il disait stdio :/
merci beaucoup
Messages postés
31
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
21 mars 2007

Bonjour,

alors voilà, je voulais la fonction fin de fichier pour que je puisse lire jusqu'a la fin du fichier lol mais avec eof ca marche pas, j'ai aucun résultat.
C'est pour ca que j'utilise un autre test en attendant.

Le probleme ci dessous c'est que j'ai un fichier txt avec dedans des noms séparé par un ;

exemple: toto;kikou;exo;martin;

Mais quand je récupere et je met dans mon combobox j'obtiens des truc comme ca :
toto|$
kikou$u
exo|
martinu

Voici mon code (juste la boucle) :

while(/*eof(desc)*/nb_couple!=4)
{
FileRead(desc,&var,1);


if(var==';')
{
int p=0;


p=i; //je sais c'est inutile mais j'avais fais ca pour tester autre chose
couple=new char[p];


for(int j=0; jItems->Add(couple);
nb_couple++;
i=0;
delete(couple);
}


else
{
mots[i]=var;
i++;
}
};

D'où vient le pb? :/

Merci par avance :P
Messages postés
268
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
13 mai 2013
2
il te manque le caractère de fin (\0)

regarde l'exemple:

char *couple;

couple= new char [8];
char mots[8]="abc";
int c=8;
int j;
for(j=0; j<3; j++)
{
couple[j]=mots[j];
}
couple[j+1]='\0';//on rajoute le caractére de fin
ComboBox1->Items->Add(couple);

delete couple;
Messages postés
31
Date d'inscription
mardi 16 mars 2004
Statut
Membre
Dernière intervention
21 mars 2007

Non ca marche pas :/ deja essayé.

J'ai ouvert un autre post avec cette question