Extraire chaine de caratcère via matlab
Fermé
karaq
Messages postés
3
Date d'inscription
samedi 5 septembre 2009
Statut
Membre
Dernière intervention
6 septembre 2009
-
5 sept. 2009 à 15:46
O!!!u!!!i!!!s!!!t!!!i!!!t!!!i - 7 sept. 2009 à 20:58
O!!!u!!!i!!!s!!!t!!!i!!!t!!!i - 7 sept. 2009 à 20:58
A voir également:
- Extraire chaine de caratcère via matlab
- Extraire video youtube - Guide
- Excel extraire chaine de caractère après un caractère ✓ - Forum Excel
- Extraire musique youtube - Guide
- Téléchargez cette archive (dossier compressé). en extraire tous les fichiers dans un dossier local. quel fichier contient l’expression trouverpix ? ✓ - Forum Windows
- Communication impossible via ssl ps4 ✓ - Forum Google Chrome
5 réponses
Je n'ai pas connaissance d'une telle option et la page d'aide de fgetl n'en fait pas mention.
Mais tu peux utiliser fgetl puis le regexp dont je parlais.
fid = fopen('myfile.txt','r');
tline = fgetl(fid);
nl = 1;
while ischar(tline)
if size(regexp(tline,'.*x025.*','match'),1)~=0; disp(['Line ' num2str(nl) ' : ' tline]); end;
nl=nl+1;
tline = fgetl(fid);
end
fclose(fid);
Ou pour enregistrer les lignes dans un tableau de cellules de caractères...
clear M;
fid = fopen('myfile.txt','r');
tline = fgetl(fid);
nl = 1;
while ischar(tline)
if size(regexp(tline,'.*x025.*','match'),1)~=0; M{nl}=tline; end;
nl=nl+1;
tline = fgetl(fid);
end
fclose(fid);
Ou pour enregistrer les lignes dans un fichier...
fid = fopen('myfile.txt','r');
fidout = fopen('myfileout.txt','w');
tline = fgetl(fid);
nl = 1;
while ischar(tline)
if size(regexp(tline,'.*x025.*','match'),1)~=0; fprintf(fidout,'%sn',tline); end;
nl=nl+1;
tline = fgetl(fid);
end
fclose(fid);
fclose(fidout);
Pour finir, si tu es sûr que le programme ne sera utilisé que sous une machine unix ou linux (mac aussi), tu peux utiliser les commandes relatives à l'OS, il suffit de les faire précéder d'un point d'exclamation.
!grep 'x025' myfile.txt > foundlines.txt
Bye
Mais tu peux utiliser fgetl puis le regexp dont je parlais.
fid = fopen('myfile.txt','r');
tline = fgetl(fid);
nl = 1;
while ischar(tline)
if size(regexp(tline,'.*x025.*','match'),1)~=0; disp(['Line ' num2str(nl) ' : ' tline]); end;
nl=nl+1;
tline = fgetl(fid);
end
fclose(fid);
Ou pour enregistrer les lignes dans un tableau de cellules de caractères...
clear M;
fid = fopen('myfile.txt','r');
tline = fgetl(fid);
nl = 1;
while ischar(tline)
if size(regexp(tline,'.*x025.*','match'),1)~=0; M{nl}=tline; end;
nl=nl+1;
tline = fgetl(fid);
end
fclose(fid);
Ou pour enregistrer les lignes dans un fichier...
fid = fopen('myfile.txt','r');
fidout = fopen('myfileout.txt','w');
tline = fgetl(fid);
nl = 1;
while ischar(tline)
if size(regexp(tline,'.*x025.*','match'),1)~=0; fprintf(fidout,'%sn',tline); end;
nl=nl+1;
tline = fgetl(fid);
end
fclose(fid);
fclose(fidout);
Pour finir, si tu es sûr que le programme ne sera utilisé que sous une machine unix ou linux (mac aussi), tu peux utiliser les commandes relatives à l'OS, il suffit de les faire précéder d'un point d'exclamation.
!grep 'x025' myfile.txt > foundlines.txt
Bye
Hi
Tu peux te débrouiller de la même manière qu'avec linux en trifouillant textscan et regexp je pense, mais il y a peut-être mieux.
Quelque chose de ce genre :
fid=fopen('myfile.dat','r');
M=textscan(fid,'%s','delimiter','\n');
M=regexp(M{1},'.*x035.*','match');
M=strvcat([M{:}]);
fclose(fid);
Pense à demander de l'aide ailleurs que sur ce forum miteux la prochaine fois, si tu attends après les habitués pour te répondre, tu risques d'attendre longtemps, il n'y a que des incompétents ici. Les chances d'obtenir une réponse intelligente à une question par là sont quasi nulles, les seuls cas où cela peut arriver, c'est quand quelqu'un tombe malencontreusement sur ton sujet lors d'une recherche fortuite sous un moteur de recherche, comme ce fut le cas pour moi.
Bye
Tu peux te débrouiller de la même manière qu'avec linux en trifouillant textscan et regexp je pense, mais il y a peut-être mieux.
Quelque chose de ce genre :
fid=fopen('myfile.dat','r');
M=textscan(fid,'%s','delimiter','\n');
M=regexp(M{1},'.*x035.*','match');
M=strvcat([M{:}]);
fclose(fid);
Pense à demander de l'aide ailleurs que sur ce forum miteux la prochaine fois, si tu attends après les habitués pour te répondre, tu risques d'attendre longtemps, il n'y a que des incompétents ici. Les chances d'obtenir une réponse intelligente à une question par là sont quasi nulles, les seuls cas où cela peut arriver, c'est quand quelqu'un tombe malencontreusement sur ton sujet lors d'une recherche fortuite sous un moteur de recherche, comme ce fut le cas pour moi.
Bye
karaq
Messages postés
3
Date d'inscription
samedi 5 septembre 2009
Statut
Membre
Dernière intervention
6 septembre 2009
6 sept. 2009 à 12:43
6 sept. 2009 à 12:43
Merci pour ton aide, je vais essayer ça.
On m'a parlé de la fonction "fgetl" mais en mettant une condition ça te dit quelque chose.
J'ai toujours utilisé cette fonction sans condition. je sais pas comment lui dire de prendre la ligne avec le caractère "x025" par exemple. Est-ce possible?
En tout cas merci pour ton aide au combien précieuse
On m'a parlé de la fonction "fgetl" mais en mettant une condition ça te dit quelque chose.
J'ai toujours utilisé cette fonction sans condition. je sais pas comment lui dire de prendre la ligne avec le caractère "x025" par exemple. Est-ce possible?
En tout cas merci pour ton aide au combien précieuse
karaq
Messages postés
3
Date d'inscription
samedi 5 septembre 2009
Statut
Membre
Dernière intervention
6 septembre 2009
6 sept. 2009 à 15:26
6 sept. 2009 à 15:26
Merci pour toutes tes infos
je vais me dépatouiller avec ce que tu m'as donné
et je te tiens au jus merci en tout cas
je vais me dépatouiller avec ce que tu m'as donné
et je te tiens au jus merci en tout cas
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question