Dangona
Messages postés4Date d'inscriptionsamedi 3 juin 2006StatutMembreDernière intervention31 mars 2008
-
21 juin 2007 à 18:31
Dangona
Messages postés4Date d'inscriptionsamedi 3 juin 2006StatutMembreDernière intervention31 mars 2008
-
25 juin 2007 à 21:35
Bonjour,
S V P quelqu'un pourra m'aider à lire un fichier text et le stocker dans un tableau de réels.
la structure defichier est la suivante 12.2 ,12 ,15.3
14.5 , 45.3 ,47
42, 63.2 , 17
C'est la vigule qui gène.(delphi)
La deuxième question est sur l'utilisation d'une fonction pour un temps d'attente sans rien faire à l'opposé du timer qui exécute un code.
sisi231
Messages postés207Date d'inscriptionmercredi 5 mars 2003StatutMembreDernière intervention29 mars 20135 21 juin 2007 à 21:34
excuse moi mais mon ordi était presque planté alors je cliquais comme un dingue croyant que ça ne marchais pas pour finir la page d'ie a fini par devenir blanche et plus rien !
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202237 22 juin 2007 à 01:57
LOL!
type
TDoubleArray = array of double;
function DoubleArrayFromFile(const FileName : string; var DA : TDoubleArray; const DecSep : char '.'; const ValSep : char ',') : integer;
var ODS : char;
N : integer;
begin
// sauvegarde du separateur de decimale
ODS := DecimalSeparator;
// modification du separateur de decimale
DecimalSeparator := DecSep;
try
// creation d'une liste
with TStringList.Create do
try
// definition du separateur de chaines
Delimiter := ValSep;
// chargement du fichier
LoadFromFile(FileName);
// abracadabra ...
DelimitedText := Text;
// si on a bien une ou plusieurs lignes
if Count > 0 then
begin
// on definit la taille de DA
SetLength(DA, Count);
// on initialise Result a 0 (compteur d'erreur)
Result := 0;
// on tente de placer les valeurs dans le tableau
for N := 0 to Count-1 do
try
// L'indice de la valeur dans le tableau se fait en fonction
// du nombre d'erreurs rencontrées.
DA[N-Result] := StrToFloat(Strings[N]);
except
// try ... except obligatoire pour detecter les erreurs de convertions
// l'erreur s'affiche sous delphi mais pas dans le programme!
on EConvertError do Result := Result + 1;
end;
// on redefinie la taille du talbeau pour supprimer tout l'espace qui n'a pas
// été utilisé.
SetLength(DA, Count-Result);
end;
finally
// try ... finally obligatoire pour liberer la liste
Free;
end;
finally
// try ... finally obligatoire pour restaurer le separateur de decimale
DecimalSeparator := ODS;
end;
end;
Dangona
Messages postés4Date d'inscriptionsamedi 3 juin 2006StatutMembreDernière intervention31 mars 2008 22 juin 2007 à 20:52
Bonjour,
Merci pour toutes ces réponses.
Si je peux avoir une méthode pour remplacer dans le fichier les virgules par des espaces(une vigule par un blanc) c'est l'idéal je pense.Et après je peux directement lire mes valeurs en réel.
En fait ce n'est pas tout le fichier que je veux manipuler,j'ai besoin juste de quelques colonnes siblées.
Dangona
Messages postés4Date d'inscriptionsamedi 3 juin 2006StatutMembreDernière intervention31 mars 2008 25 juin 2007 à 21:35
Bonjour,
Non, je ne suis qu'un utilisateur du ficheir en question qui n'a pas été écri en bon format. Des caractère ', ' (virgule) ont été insérés pour séparer les différentes lignes; pour une question de lisibilité.
Moi, je n'ai besoin que des quelques lignes bien ciblées.