cs_couf
Messages postés213Date d'inscriptiondimanche 5 janvier 2003StatutMembreDernière intervention 6 janvier 2011
-
26 oct. 2006 à 14:44
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 2015
-
26 oct. 2006 à 17:09
Bonjour à tous,
Tous est à peu près dit dans le titre.
Je m'explique je dois copier une sous chaine de caractère dans un fichier, je ne sais pas par avance
la longueur (la longuer peut varier)qu'elle fait , je sais juste qu'il y a un CRLF qui me dit la fin de ma ligne.
je pensais utiliser copy(ligne,debut,fin) mais cela ne fonctionne pas.
si vous avez une astuce pour moi car je dois dire que je tourne en rond.
cs_couf
Messages postés213Date d'inscriptiondimanche 5 janvier 2003StatutMembreDernière intervention 6 janvier 20111 26 oct. 2006 à 15:57
Merci Simon,
C'est ce que j'ai pensé faire au départ
je te donne une partie de mon source
uses
classes,
SysUtils,
strUtils;
var
ifcsum : TStringList;
index,longueur, I, N : integer;
mail,segment :string;
C_mail:char ;
begin
ifcsum:= TStringList.Create;
ifcsum.LoadFromFile('C:\test\DIFC96A.01');
for N:=1 to ifcsum.Count - 1 do
begin
segment:=copy(ifcsum[I],1,5); <-- ici j'ai une erreur (indice hors limite)
if
segment ='COM41'
then
begin
longueur:= (33- length(ifcsum[N])) ;
mail:=copy(ifcsum[N], 33,longueur); <-- ici j'ai aussi une erreur (indice hors limite)
if
end;
end;
for i: =1 to 100000 do writeln(ifcsum[N]);
end.
c'est pour cela que j'ai dis que je tournais en rond je vois pas pourquoi.
couf
cs_couf
Messages postés213Date d'inscriptiondimanche 5 janvier 2003StatutMembreDernière intervention 6 janvier 20111 26 oct. 2006 à 16:48
Salut Simon,
Oublie c'est réglé Merci beaucoup effectivement length(ifcsum[N]) est > 33 c'est l'inverse que je dois faire merci et excuse moi encore 1000000000 mercis