Types incompatibles : 'Char' et 'String' [Résolu]

Messages postés
236
Date d'inscription
jeudi 30 septembre 2004
Dernière intervention
26 juin 2011
- - Dernière réponse : f0xi
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
2 janvier 2019
- 1 juin 2010 à 23:05
Bonjour !
J'ai un petit soucis mais malgré mais recherche je n'ai pas trouvé de solution qui marche.

var
MonTableau: array  of String;
S : TSearchRec;
begin
 SetLength(MonTableau,9); //10 lignes
 SetLength(MonTableau[0], 1);//2 colonnes
 Chemin:=IncludeTrailingPathDelimiter(Chemin);

 MonTableau[1,1]:='1';
 MonTableau[2,1]:=Chemin+S.Name;


Et je me retrouve avec > Types incompatibles : 'Char' et 'String'.
J'ai essayé char(Chemin+S.Name) mais je me prend un Transtypage incorrect.


La solution doit être vraiment bête mais je ne la trouve pas.
Merci à ceux qui pourront m'apporter de l'aide.
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
265
Date d'inscription
dimanche 7 décembre 2003
Dernière intervention
11 novembre 2016
1
3
Merci
Bonjour

l'erreur vient du fait que votre tableau est à une seule dimension
et donc lorsque vous faite montableau[x,1] vous accédez au premier caractère du string de la ligne x
Donc faut définir un tableau à plusieurs dimensions
A+

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 114 internautes nous ont dit merci ce mois-ci

Commenter la réponse de fbalien
3
Merci
Salut

Je lui défini bien 2 dimensions
: T'es sur ?

fBalien et f0xi viennent de te répondre 2 fois à cette question :

MonTableau: array of String; => Tableau à une dimension

MonTableau: array of array of String; => Tableau à deux dimension

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 114 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
2 janvier 2019
33
0
Merci
var
MonTableau: array of String;
S : TSearchRec;
begin
 SetLength(MonTableau, 10, 2); //10 lignes, 2 colonnes
 Chemin := IncludeTrailingPathDelimiter(Chemin);

 MonTableau[0, 0] := '1';
 MonTableau[1, 0] := Chemin+S.Name;


un tableau diynamique est toujours indexé à 0!

ici avec SetLength(T, 10, 2) nous aurons l'equivalent de array[0..9, 0..1]
donc bien 10 lignes et 2 colonnes.

ce qui est d'ailleurs inutile puisque tu ne semble jamais avoir besoin de definir d'autres dimensions donc tu pourrai le definir en statique :

var
MonTableau: array[0..9, 0..1] of String;
S : TSearchRec;
begin
 Chemin := IncludeTrailingPathDelimiter(Chemin);
 MonTableau[0, 0] := '1';
 MonTableau[1, 0] := Chemin+S.Name;


________________________________________________________
besoin de câbles audio, vidèo, informatique pas cher ?
Commenter la réponse de f0xi
Messages postés
236
Date d'inscription
jeudi 30 septembre 2004
Dernière intervention
26 juin 2011
0
Merci
Du coup j'ai changer ma façon de procéder :
var
  c: Integer;
  MonTableau: array of String;
begin
  For c:=0 To (Form1.CheckListBox1.Items.Count-1) do
  Form1.CheckListBox1.Checked[c] := True;
  SetLength(MonTableau,1,c);

Et je me retrouve face à : ')' attendu(e) mais ',' trouvé(e)

Avez-vous une explication ??
Je lui défini bien 2 dimensions (même sans C ça me met la même erreur).
Commenter la réponse de cs_JackNUMBER
Messages postés
236
Date d'inscription
jeudi 30 septembre 2004
Dernière intervention
26 juin 2011
0
Merci
Haaaaaa ok. J'avais pas compris ça comme ça.

Merci !
Commenter la réponse de cs_JackNUMBER
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
2 janvier 2019
33
0
Merci
en effet, j'ai oublier de corriger le type dans mon post precedent.


________________________________________________________
besoin de câbles audio, vidèo, informatique pas cher ?
Commenter la réponse de f0xi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.