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

cs_JackNUMBER 236 Messages postés jeudi 30 septembre 2004Date d'inscription 26 juin 2011 Dernière intervention - 31 mai 2010 à 02:07 - Dernière réponse : f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention
- 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

fbalien 265 Messages postés dimanche 7 décembre 2003Date d'inscription 11 novembre 2016 Dernière intervention - 31 mai 2010 à 12:37
+3
Utile
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+
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de fbalien
Utilisateur anonyme - 1 juin 2010 à 08:56
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Utilisateur anonyme
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 31 mai 2010 à 21:11
0
Utile
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
cs_JackNUMBER 236 Messages postés jeudi 30 septembre 2004Date d'inscription 26 juin 2011 Dernière intervention - 1 juin 2010 à 01:17
0
Utile
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
cs_JackNUMBER 236 Messages postés jeudi 30 septembre 2004Date d'inscription 26 juin 2011 Dernière intervention - 1 juin 2010 à 09:39
0
Utile
Haaaaaa ok. J'avais pas compris ça comme ça.

Merci !
Commenter la réponse de cs_JackNUMBER
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 1 juin 2010 à 23:05
0
Utile
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.