IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

remplacement d'une chaine de caractére par un entier


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 12
    Par défaut remplacement d'une chaine de caractére par un entier
    bonjour tout le monde

    voila mon problème, j'ai un fichier de la sorte:

    +1 NOUN_PROP NOUN_PROP
    -1 PUNC DET+NOUN+NSUFF_FEM_PL+CASE_DEF_NOM DET+ADJ+NSUFF_FEM_SG+CASE_DEF_NOM PUNC NUM PUNC ABBREV ABBREV PUNC
    +1 PUNC NOUN+CASE_DEF_NOM NOUN+CASE_INDEF_GEN PV+PVSUFF_SUBJ:3MS PREP NOUN+NSUFF_FEM_SG+CASE_DEF_GEN
    -1 DET+ADJ+CASE_DEF_GEN
    ..........
    ..........
    et un autre fichier qui contient tout les tag (étiquéte) qui puissent aparaitre dans le premier fichier

    ABBREV
    ADJ+CASE_DEF_GEN
    ADJ+CASE_INDEF_ACC
    ADJ+CASE_INDEF_GEN
    ADJ+CASE_INDEF_NOM
    ADJ+NSUFF_FEM_SG+CASE_INDEF_ACC
    ADV
    ADV+CASE_DEF_ACC
    CONJ
    DET+ADJ+NSUFF_FEM_SG+CASE_DEF_A
    DET+ADJ+NSUFF_FEM_SG+CASE_DEF_GEN
    DET+ADJ+NSUFF_FEM_SG+CASE_DEF_NOM
    DET+ADJ+NSUFF_MASC_PL_GEN
    DET+NOUN+CASE_DEF_ACC
    Je voudrai remplacer chaque occurrence du premier fichier par la position de cette même occurrence dans le deuxième fichier,
    par exemple un 0 à la place de ABBREV

    Voici mon code mais il ne me remplace que les ABBREV donc la première possibilité

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     Dim tags As String = sr3.ReadToEnd
            Dim tabTag() As String = tags.Split(vbCrLf)
     
     Dim vecteur As String = sr4.ReadToEnd
            vecteur = vecteur.Replace(vbCrLf, Chr(32))
            Dim TabVect() As String = vecteur.Split(" ")
     
            For j As Integer = 0 To UBound(tabTag)
                For k As Integer = 0 To UBound(TabVect)
                    If TabVect(k) <> "+1" And TabVect (k) <> "-1" Then
                    If TabVect (k) = tabTag (j)  Then
                        TabVect(k)  = CStr (j)
                    End If
                    End If
                Next k
            Next j
    merci pour votre aide

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut remplacer une chaine par son index dans une liste
    bonjour
    Veuillez faire attention à la saisie des fichiers texte sans quoi vous trouverez n'importe quoi dans le resultat,si le fichier texte est "scratche".
    Terminer les lignes par un "cr".
    Terminer la fin de fichier par un "suppr" ou ctrl-z(caractere de fin fichier).
    voici ton code corrige d'une ereur de logique .
    Il est conseille de convertir à la volee les tableax de string en list(of string)parce c'est gratuit et ca facilite le recherche de chaine(fonction contains) au lieu de faire des boucles.
    code....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    'VEUILLEZ FAIRE ATTENTION À LA SAISIE DES FICHIERS TEXTE
    'Valider chaque ligne avec touche "suppr" et  touche "retour chariot"(cr)
    'Sans quoi il y aura des caracteres tabulation ou des caracterres null string("")
    'qui fausseront le resultat de la fonction Split
    'Fin de fichier :appuyer sur touche "suppr" apres le dernier caractere de la dernier ligne
    'pour marquer fin de fichier.
    'NB:RAJOUTER 3 TEXTBOX SVP
    Imports System.IO
    Imports System.Text
     
    Public Class Form1
        Dim cheminFichier As String = Directory.GetCurrentDirectory & "\"
        Dim fileTag As String = "Tags.txt"
        Dim fileTexte As String = "Fichier.txt"
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim tags As String = String.Empty
            Dim TabTag() As String = New String() {}
            Dim vecteur As String = String.Empty
            Dim TabVect() As String = New String() {}
     
            Using srFileTag As StreamReader = New StreamReader(cheminFichier & fileTag, True)
                tags = srFileTag.ReadToEnd
                TabTag = tags.Split(New Char() {" ", vbCrLf, vbTab})
                srFileTag.Close()
            End Using
            Using srFileText As StreamReader = New StreamReader(cheminFichier & fileTexte, True)
                vecteur = srFileText.ReadToEnd
                TabVect = vecteur.Split(New Char() {" ", vbCrLf, vbTab})
                srFileText.Close()
            End Using
            'Affiche les fichiers lus
            Call displayFiles(TabTag, Me.txtBoxFileTag)
            Call displayFiles(TabVect, Me.txtBoxFileVecteur)
     
            'tabVectTemp est un tableau clone de TabVect(stocke les resultats)
            'Car il est interdit dans une boucle recherche de modifier TabVec
            Dim tabVectTemp() = TabVect
     
            'SVP: Erreur de logique .Permuter les tableaux TabVect et TabTag   
            'On "prend" un element de TabTag et on recherche à chaque fois 
            'dans TabVec s'il y a un element correspond
            For J As Integer = 0 To UBound(TabTag)
                'check si un element de TabVec se trouve dans  
                For K As Integer = 0 To UBound(TabVect)
                    If TabVect(K) <> "+1" And TabVect(K) <> "-1" Then
                        If TabVect(K) = TabTag(J) Then
                            tabVectTemp(K) = CStr(J)
                        End If
                    End If
                Next K
            Next J
     
            'VARIANTE AVEC CONVERSION DE TabTag EN  LIST(OF STRING)
            'a la volee
            'Dim lstTag As List(Of String) = TabTag.ToList
            'For J As Integer = 0 To TabVect.Length - 1
            '    Dim ch As String = TabVect(J)
            '    If lstTag.Contains(ch) Then
            '        tabVectTemp(J) = lstTag.IndexOf(ch).ToString
            '    End If
            'Next
            'Affiche le fichier final contenu dans tabVectTemp
            Call displayFiles(tabVectTemp, Me.txtBoxFileReplacement)
        End Sub
        Private Sub displayFiles(ByVal objTabStr() As String, ByVal ctrl As TextBox)
            ctrl.Clear()
            For I As Integer = 0 To objTabStr.Length - 1
                ctrl.Text = ctrl.Text & (I).ToString & "  :" & objTabStr(I) & vbCrLf
            Next
        End Sub
    End Class
    p.j: 01 fichier fich.txt(donnees)
    01 fichier Fags.txt(tags)
    bon code....

Discussions similaires

  1. Réponses: 7
    Dernier message: 31/01/2010, 00h27
  2. Réponses: 7
    Dernier message: 21/01/2010, 22h03
  3. Réponses: 1
    Dernier message: 08/02/2009, 23h18
  4. Réponses: 10
    Dernier message: 24/11/2008, 13h14
  5. JSP : comment remplacer une chaine de caractères par une autre
    Par techquos dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/12/2006, 09h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo