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

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

Merci fbalien 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de fbalien
Meilleure réponse
- 1 juin 2010 à 08:56
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

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
9 mars 2018
- 31 mai 2010 à 21:11
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
- 1 juin 2010 à 01:17
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
- 1 juin 2010 à 09:39
0
Merci
Haaaaaa ok. J'avais pas compris ça comme ça.

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