Manque string

yomane51100 Messages postés 69 Date d'inscription jeudi 8 juin 2006 Statut Membre Dernière intervention 17 septembre 2010 - 21 sept. 2006 à 17:00
 Utilisateur anonyme - 23 sept. 2006 à 09:32
bonjours a tous est toute je ne sait pas si une personne pour et mèdes je télécharge une liste m3u est je la mes dans une listbox1 ensuite je prends la premier ligne de c été m3u est je la mes sur une listbox2 je garde que se que je veut avec se code


code
ListBox2.Items.Clear;
trigger := '#EXTINF'; // indicateur de ligne à traiter
for i := 0 to ListBox1.Items.Count-1 do begin
ligne := ListBox1.Items[i];
control := copy(ligne, 1, length(trigger));
if control <> trigger then
Continue; // Ce n'est pas une ligne à traiter, on passe à la suivante
PosVirgule := pos(',', ligne); // position d ela virgule dans la ligne
if PosVirgule = 0 then begin
ShowMessage('Erreur, Virgule pas trouvée');
exit;
end;
resultat := copy(ligne, PosVirgule+1, 99999); // Fin de la ligne
ListBox2.Items.Add(resultat);
end;

Est je fait de même avec la listbox3 pour récupéré la 2 ligne donc toutes les url qui sont afficher dans la 1 mes chez un problème je nez pas l url au complet je nés que tspSourire en biais /mafreebox.freebox.fr/freeboxtv/201 au mieux de sa rtspSourire en biais /mafreebox.freebox.fr/freeboxtv/201
je voudrais avoir l url entier savait vous comment faire pour récupéré le R quelle sigle ou lettre mettre pour que la virgule trouve le R merci a vous tous est toutes.
pour voir le problème je vous mes une capture d écrant.

9 réponses

Utilisateur anonyme
21 sept. 2006 à 23:21
Salut

Passe l'url ou tu récupère ta liste m3u stp, car je ne comprends rien à ta demande et ta capture d'écran : j'y vois rien ^^.

Merci
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
21 sept. 2006 à 23:26
En français, la question ça donne quoi ?

May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 3
22 sept. 2006 à 09:11
salut,

heu, j'ai pas bien compris ta question, mais je te donne quand même un conseil "technique":

remplace:
copy(ligne, PosVirgule+1, 99999)
par
RightStr(ligne, lenght(ligne)-PosVirgule+1)

peut-être que AnsiStartsText ou AnsiPos te redrais aussi service.

bonne chance,
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
22 sept. 2006 à 09:53
Salut,

 
@ Loda :
RightStr utilise Copy ...

par contre au lieu d'écrire :
copy(ligne, PosVirgule+1, 99999);

mettre :
copy(ligne, PosVirgule+1, High(Integer));

Bon un petit truc pour YoMane51100:
Sur la page de garde de Google à droite de la barre de recherche on peut lire Outils linguistiques. Il faut faire un click dessus puis tu écris ta question dans le langage de ton choix et tu le traduis en français, il faut absolument éviter les fautes d'orthographes sinon ça peut devenir très drôle. Pour certaines langues (Arabe, Italien, Espagnol) il faut d'abord traduire en Anglais puis en français.

en Allemand:
Auf der Bewachungsseite von Google rechts der Forschungsstange kann man linguistische Werkzeuge lesen. Man muß ein click oben machen dann du schreibt deine Frage in der Sprache deiner Wahl, und du übersetzt es auf französisch, man muß unbedingt die Orthographiefehler vermeiden, andernfalls kann das sehr sonderbar werden. Für bestimmte Sprachen (arabisch, italienisch, spanisch), man muß zuerst auf englisch übersetzen dann auf französisch.

en Anglais:
On the title page of Google on the right of the bar of research one can read linguistic Outils. A click should be made above then you write your question in the language of your choice and you translate it into French, it is absolutely necessary to avoid the spelling mistakes if not that can become very funny. For certain languages (Arab, Italian, Spanish) it is initially necessary to translate into French English then.

Encore une petite pour la route:

Texte original:
Vous pouvez utiliser Google pour écrire une question dans votre langage maternel et la traduire en français
en Anglais:
You can use Google to write a question in your maternal language and to translate it into French
en Allemand:
Sie können Google benutzen, um eine Frage in Ihrer Muttersprache zu schreiben und es auf französisch zu übersetzen

Voilà vous n'avez donc plus d'éxcuses ...

@+
Cirec
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 3
22 sept. 2006 à 11:27
"If Count specifies more characters or array elements than are available, only the characters or elements from S[Index] to the end of S are returned."

dsl, j'avais pas fait gaffe au détail. N'empeche que "9999" c'est moche.
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
22 sept. 2006 à 11:35
Et en francais :
Si le compte indique plus de caractères ou d'éléments de rangée qu'est disponible, seulement les caractères ou les éléments de S [index] à la fin de S sont retournés

"N'empeche que "9999" c'est moche."
 D'ou le High(Integer) à la place

@+
Cirec
0
Utilisateur anonyme
22 sept. 2006 à 15:05
Bon,

Pour ceux qui ne savent pas ce qu'est un fichier m3u : c'est un fichier texte qui contient une liste de fichiers sons avec leurs durées. Il est construit comme cela :

#EXTM3U
#EXTINF:159,Titre1
Fichier1.extension
#EXTINF:166,Titre2
Fichier2.extension

Yomane, je te mets sur la voie :

*Charger ton fichier m3u dans un TStringList;
*Soit i un integer : pour i allant de 1 à (count-1) :
-Si i est impaire, faire un copy en utilisant les caractères ':' et ',' et copier le résultant dans la listbox2.
-Si i est paire : tu copie tout dans la listbox1.

Maintenant à toi de jouer

PS : Il existe des sources faisant la meme chose sur DelphiFr.
0
Utilisateur anonyme
22 sept. 2006 à 15:43
Procedure MyM3U ( AFile : String);
Var
List : TStringList;
Nb : cardinal;
AInfo : String;
Begin
List:=TStringList.Create;
Try
List.LoadFromFile(AFile);
For Nb:=1 to (List.Count-1) do
Begin
If not odd(Nb) then ListBox1.add(List.Strings[Nb]) Else
Begin
AInfo:=List.Strings[Nb];
ListBox2.Add(Copy(AInfo,Pos(':',AInfo)+1,Pos(',',AInfo)-Pos(':',AInfo)-1));
ListBox3.Add(Copy(AInfo,Pos(',',AInfo)+1,length(AInfo)));
End;
End;
Finally
FreeAndNil(List);
End;
End;


Procedure Main.Button1Onclick(Sender : TObject);
Begin
If opendialog1.execute then MyM3U(Opendialog1.filename);
End;

Je n'ai pas testé mais ca devrait être bon.
0
Utilisateur anonyme
23 sept. 2006 à 09:32
Petite recttification

Procedure TForm1.MyM3U ( AFile : String);
Var
List : TStringList;
Nb : cardinal;
AInfo : String;
Begin
List:=TStringList.Create;
Try
List.LoadFromFile(AFile);
For Nb:=1 to (List.Count-1) do
Begin
If not odd(Nb) then ListBox1.items.add(List.Strings[Nb]) Else //ici
Begin
AInfo:=List.Strings[Nb]; ListBox2.items.Add(Copy(AInfo,Pos(':',AInfo)+1,Pos(',',AInfo)-Pos(':',AInfo)-1));
ListBox3.items.Add(Copy(AInfo,Pos(',',AInfo)+1,length(AInfo)));
End;
End;
Finally
FreeAndNil(List);
End;
End;

procedure TForm1.Button1Click(Sender: TObject);
begin
If opendialog1.execute then MyM3U(Opendialog1.filename);
end;

J'ai testé le code : il fonctionne

Merci de valider le post stp
0
Rejoignez-nous