probleme d'adresse memoire qui rend fou

probleme d'adresse memoire qui rend fou - Delphi/Pascal - Programmation

Marsh Posté le 04-07-2007 à 17:40:28    

bonjour,
j'ai fai une procedure simple dans un fichier bibliotheque.pas la voici
c'est un equivalent d'un explode php
 
Procedure extraireMots(chaine: string; TableauString : array of string ;  separateur: Char);
 
var
  indice, longueurChaine, indiceTableau : integer;
  motCourant : string;
   
begin
  // tant que la fin de la chaine n'est pas atteinte
  longueurChaine := length(chaine);
 
  // On instancie les indices
  indice := 0;
  indiceTableau := 0;
 
  //  motCourant est mims a null
  motCourant := '';
 
  // On incremente l'indice
  inc(indice);
 
  //showmessage('longueur de la chaine : ' + inttostr(longueurChaine));
 
  // tant que l'on a pas atteind la fin de la chaine
  while (indice <= longueurChaine) do
  begin
 
    // Si le car est un separateur
    if (chaine[indice] = separateur) or (indice = longueurChaine) then
    begin
        // On memorise la chaine dans le Tstring
        TableauString := motCourant;
         
        // On repasse mot courant a null
        motCourant := '';
 
        // indice tableau
        inc(indiceTableau);
    end
    else
    begin
        // On ajoute le car a la chaine
        motCourant := motCourant + chaine[indice];
    end;
 
    // On incremente l'indice
    inc(indice);
   end;
   
end;

 
elle fonctionne, c'est a dire que quand je fais des showmessage a l'interieure apres l'avoir appelé le tableau de retour est bien rempli avec les bonnes valeurs
 
le truc c'est donc que je l'appel comme ca
dans un autre fichier .pas
extraireMots(chaineUtilisateur,TableauChaineUtilisateur,'|');
 
mais quand je veux faire
Showmessage(TableauChaineUtilisateur[0]);
 
et bien il me met qu'il y a un probleme d'adresse memoire et ca bloque...
 
que faire sachant que dans mon fichier .pas ou j'appelle cette procedure j'ai bien declaré le type de TableauChaineUtilisateur comme array of string..
 
je ne sait plus koi faire j'ai tout essayé
ca doit etre un truc bete mais qui me depasse.
 
merci d'avance

Reply

Marsh Posté le 04-07-2007 à 17:40:28   

Reply

Marsh Posté le 04-07-2007 à 17:46:50    

pardon
dans la fonction je fait
 
// On memorise la chaine dans le Tstring
TableauString[indiceTableau] := motCourant;

Reply

Marsh Posté le 04-07-2007 à 18:29:28    

c bon j'ai trouvé je n'avais pas donné de taille a mon tableau

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed