2013-04-29 6 views
0

Je voudrais partager une chaîne comme celui-ci dans Access 2000 (fonction Visual Basic):Comment diviser cette chaîne en deux parties?

"[Results] 

[Comments]"   

en deux parties:

  • la partie des résultats
  • les commentaires partie

Comme vous pouvez le constater, ces deux parties sont séparées par une ligne vide (toujours, c'est notre séparateur). [Results] et [Comments] sont des blocs de texte.

Nous ne nous intéressons pas à ce qu'il contient, sauf:

la partie des résultats ne contient aucune ligne vide, donc la première ligne vide que nous voyons est celle du séparateur.

Je souhaite que ma fonction extrait uniquement la partie Commentaires.

Voici ce que j'ai essayé:

Public Function ExtractComm(txt As String) As String 

Dim emptyLine As Integer 

txt = Trim(txt) 

'emptyLine = first empty line index ?? 
emptyLine = InStrRev(txt, (Chr(13) + Chr(10)) & (Chr(13) + Chr(10))) 

'Comments part = all that is after the empty line ?? 
ExtractComm = Mid(txt, emptyLine + 4) 

End Function 

Mais il ne fonctionne pas bien. Si je fais:

ExtractComm(
    "Res1 
    Res2 

    Comment1 

    Comment2" 
) 

Je veux obtenir:

"Comment1 

Comment2" 

mais je ne comment2 obtenir. Une idée pour extraire la partie commentaire?

Merci beaucoup!

Répondre

2

Peut-être que vous devez utiliser InStr au lieu de InStrRev

InStrRev

Renvoie la position de la première occurrence d'une chaîne dans une autre, à partir du côté droit de la chaîne.

InStr Renvoie un entier spécifiant la position de début de la première occurrence d'une chaîne dans une autre chaîne.

+0

En effet cela fonctionne maintenant, merci beaucoup! – ponponke

Questions connexes