Conversion AnsiString en TString

Résolu
SaXo360 Messages postés 31 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 21 mars 2007 - 15 mars 2006 à 17:49
SaXo360 Messages postés 31 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 21 mars 2007 - 17 mars 2006 à 23:45
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

tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 2
16 mars 2006 à 11:19
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
3
tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 2
16 mars 2006 à 11:37
c'est
#include qu'il te faut
3
SaXo360 Messages postés 31 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 21 mars 2007
16 mars 2006 à 11:22
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
0
tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 2
16 mars 2006 à 11:30
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!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SaXo360 Messages postés 31 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 21 mars 2007
16 mars 2006 à 11:35
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 :/
0
SaXo360 Messages postés 31 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 21 mars 2007
16 mars 2006 à 11:40
Merci bien :D dans mon aide il disait stdio :/
merci beaucoup
0
SaXo360 Messages postés 31 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 21 mars 2007
17 mars 2006 à 13:50
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
0
tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 2
17 mars 2006 à 23:42
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;
0
SaXo360 Messages postés 31 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 21 mars 2007
17 mars 2006 à 23:45
Non ca marche pas :/ deja essayé.

J'ai ouvert un autre post avec cette question
0
Rejoignez-nous