begin process at 2012 02 15 11:56:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

Aide & Documentation

 > 

Extraire chaine dans un fichier avec comme parametre caractere debut et fin


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Extraire chaine dans un fichier avec comme parametre caractere debut et fin

vendredi 6 juillet 2007 à 16:00:24 | Extraire chaine dans un fichier avec comme parametre caractere debut et fin

sircrowley

bonjour a tous,
je suis debutant en vb et j'ai un petit probleme
Je souhaiterai extraire une chaine dans un fichier, de la maniere suivante :
avoir une fonction du style : extraire(NomDuFichier,ChaineDeDebut,ChaineDeFin)
Exemple :
si mon fichier contient "Salut, comment tu vas ?" et que j'appel extraire(NomDuFichier,"Salut, ", "tu vas"'), elle me retourne "comment"

J'avais trouvé celle ci
Function Extract(ByVal Fichier As String, ByVal Before As String, After As String, ByVal vBefore As String, vAfter As String) As String
On Error Resume Next
Dim trig, mutex, result, i, a$, istart, istop, value
 Open Fichier For Input As #1
 trig = False
 mutex = False
 For i = 1 To 2
 Do
  DoEvents
  Line Input #1, a$
  If InStr(a$, Before) And trig = False Then trig = True: mutex = True
  If trig Then result = result & a$
  If trig And Not mutex And InStr(a$, After) Then Exit Do
  mutex = False
 Loop Until EOF(1)
 Close #1
 
 If vBefore <> "" Then Before = vBefore
 If vAfter <> "" Then After = vAfter
 
 istart = InStr(result, Before) + Len(Before)
 istop = InStr(result, After)
 If istop < istart Then istop = InStr(istop + 1, result, After)
 value = Mid(result, istart, istop - istart)
 Next i
 Extract = value
 
End Function


Elle fonctionne bien, mais ne fonctionne pas toujours, ou n'est moi qui ne l'utilise pas comme il faut :

Extrait de mon fichier temp.tmp:
onClick="BlogThisTrack.start('http://www.radioblogclub.com/listen?u=.8yck5WdvN3Ln9Gbi5ybpRWYy9SbvNmLjlWbhNmYldnL3d3d/david%2520vendetta%2520-%2520break%25204%2520love%25202006.mp3.rbs');"></td><td valign="top"

Extrait du code qui ne fonctionne pas
Dim exten,titre

titre="david%2520vendetta%2520-%2520break%25204%2520love%25202006"
exten = Extract(App.Path & "\" & "temp.tmp", titre, "');" ,  "",  "")

Et exten reste vide :(

Que faire ?

Merci pour votre aide .

vendredi 6 juillet 2007 à 16:44:24 | Re : Extraire chaine dans un fichier avec comme parametre caractere debut et fin

jmfmarques

Membre Club
Bonjour,

Ce que je n'aime pas, c'est :
"Elle fonctionne bien, mais ne fonctionne pas toujours"
Cer qui me donne à penser que ce qui est en cause, n'est pas ta fonction (que j'aurais au demeurant écrite d'yne autre manière), mais le fichier lu lui-même.
Pour peu qu'il contienne un cractère NULL quelque part, la chaine extraite s'arrêtera à ce caractère !
vendredi 6 juillet 2007 à 17:06:21 | Re : Extraire chaine dans un fichier avec comme parametre caractere debut et fin

jmfmarques

Membre Club

Voilà, de toutes manières, ce que j'aurais écrit (en reprenant ton exemple) :

Private Sub Command1_Click()
  Dim toto As String ', titi As String
  toto = "Salut, comment tu vas ?" 'et que j'appel extraire(NomDuFichier,"Salut, ", "tu vas"'
  titi = extrayons(toto, "Salut,", "tu vas ?")
  MsgBox titi
End Sub

Private Function extrayons(texte As String, devant As String, derriere As String) As String
  extrayons = Mid(texte, InStr(texte, devant) + 1 + Len(devant))
  extrayons = Trim(Left(extrayons, InStr(extrayons, derriere) - 1))
End Function

vendredi 6 juillet 2007 à 21:11:37 | Re : Extraire chaine dans un fichier avec comme parametre caractere debut et fin

PCPT

Administrateur CodeS-SourceS
vous allez vraiment réussir à décourager les membres à venir répondre sur le forum!

8 lignes à taper... aucun effort


Option Explicit

Private Sub Form_Load()
    MsgBox ExtractUnknownPartFile("C:\test3.txt""http://www."".com")
    
    Dim titre As String
    titre = "david%2520vendetta%2520-%2520break%25204%2520love%25202006"
    MsgBox ExtractUnknownPartFile("C:\test3.txt", titre, "');")
    
    Unload Me
End Sub

Private Function ExtractUnknownPartFile(sPath, sLeft, sRight) As String
' on prend un bout ici....
'   http://www.codyx.org/snippet_lire-toutes-lignes-fichier-texte_22.aspx#67
' et là.....
'   http://www.codyx.org/snippet_remplacer-chaine-inconnue-placee-entre-deux-chaines-connues_303.aspx
' on mélange le tout et voilà...

    ExtractUnknownPartFile = vbNullString
    Dim FF As Integer, sBuffer As String, lPosL As Long, lPosR As Long
    
    FF = FreeFile
    On Error Resume Next
    Open sPath For Input As #FF
        sBuffer = Input(LOF(FF), #FF)
    Close #FF
    On Error GoTo 0

    If LenB(sBuffer) Then
        lPosL = InStr(1, sBuffer, sLeft)
        lPosR = InStr(lPosL + 1, sBuffer, sRight)
        If lPosL > And lPosR > Then ExtractUnknownPartFile = Mid$(sBuffer, lPosL + Len(sLeft), lPosR - lPosL - Len(sLeft))
    End If
End Function


++
PCPT   [AFCK]

Prenez un instant pour répondre à ce sondage svp
lundi 9 juillet 2007 à 11:48:13 | Re : Extraire chaine dans un fichier avec comme parametre caractere debut et fin

sircrowley

Merci beaucoup a vous, je vais tester tout ca !


Cette discussion est classée dans : fichier, string, extraire, result, trig


Répondre à ce message

Sujets en rapport avec ce message

Extraire ressources (string table) d'un fichier [ par allthew3 ] Bonjour à tous,J'ai beau chercher je ne trouve pas comment faire ...J'aimerais extraire toutes les chaines que contient un fichier (la String Table) : Comment faire pour ne pas avoir 2 même string dans une listbox ??? [ par [ReSTiTuTe] ] Salut,Je vous explique, j'ouvre un fichier et je le met dans une liste box, après, je rajoute un autre fichier dans cette listbox, je voudrais savoir extraire ligne d'un fichier txt [ par gt ] Bonjour je voudrais extraire la première ligne d'un txt, lui faire subir une opération puis passer à la deuxieme...le tout en faisant un next ou loop. Extraire une adresse Email d'un fichier texte [ par KoZo ] Comment faire pour extraire une adresse Email non specifiaer ( En specifiant ca forme ) d'un fichier texte connessant la ligne ou elle se trouve.Merci Extraire données Notepad vers VB? [ par jia2812 ] Slt,En partant d'1 fichier NotePad ou WordPad, je souhaite extraire les données vers 1 des labesl ou textbox ds 1 form de VB, Comment s'y prendre corr Comment Attacher un fichier a un mail [ par Ubaye ] je sais comment avec ShellExecute mettre une adresse de Mail son sujet et écrire du texte mais pas Joindre un fichier si une personne peut m'aider se Extraire une portion de texte dans un fichier texte (*.txt) [ par sebmaurice ] BonjourComment, sous VB 5 Pro, puis-je extraire une portion de fichier texte à partir d'un fichier .txt (fonction similaire à "grep" sous Unix) ?Merci Envoyer une ligne d'un fichier directement ds une structure (TYPE ...) [ par MacgyverJC ] j'avais une astuce en VB4:TYPE NPType Nom as string *10 Prenom as string *10END TYPETYPE LigneType Chaine as string *20END TYPE...NP Recherche dans un string [ par Nico5779 ] Salut a tous qqn pourrait m expliquer comment il est possible d 'extraire d'un string une information particuliere et changer son type : j ai un stri Extraire la date de création et de modification d'un fichier [ par Elmago ] Je voudrais bien savoir si qlq un le sais comment extraire les différentes informations system d'un fichier et précisément la date de création et de


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,505 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales