Avatar billede firehat Nybegynder
27. maj 2003 - 15:52 Der er 2 kommentarer og
3 løsninger

søg & erstat

Hey,

Hvordan kan jeg søge i et tekstfelt og så erstatte det?
Har prøvet Replace(), men der skal der være hele ord, men den skal søge efter bokstaver..

det den skal søge efter er i en text-database, men har hentet det ned i et array sådan her:
        Dim Filnum As Integer
        Dim Filnavn As String
        Dim FilIndhold As String
       
        Filnum = FreeFile
        Filnavn = App.Path & "\words.txt"
   
        Open Filnavn For Binary As #Filnum
     
        For i = 0 To LOF(Filnum)
            FilIndhold = FilIndhold & " "
        Next
   
        Get #Filnum, 1, FilIndhold
       
        ArrWords = Split(FilIndhold, "<|>")
       
        Close #Filnum

databasen kan ses her:
www.firehat.dk/haxor

kan ikke helt forklare det ..men bare spørg!

Tak på forhånd

/ Firehat

ps. det skal bruges til at oversætte hax0r..
Avatar billede Slettet bruger
27. maj 2003 - 18:58 #1
du skal da bare bruge Replace det kan man godt..
Avatar billede martin_moth Mester
27. maj 2003 - 22:32 #2
Lad os nu sige at du får hentet dine ord ind i dit array.

Hvad er det så du vil - vil du udskifte enkelte poster i dit array, eller?

Og er du sikker på at du overhovedet får hentet noget rigtigt ind i dit array - har du tjekket indholdet af dit array - jeg synes din kode ser lidt underlig ud - hvad bruger du f.eks. variablen i til?)

Det JEG ville være ville være at læse hele indholdet af din fil ind i een variabel, og så bruge replace på den. Men jeg er ikke helt sikker på hvad du vil???
Avatar billede fobian Nybegynder
27. maj 2003 - 23:36 #3
Jeg har lavet et lille eksempel på, hvordan du kan erstatte bogstaver uden at anvende replace. I Eksemplet erstattes bogstavet E med e. Er det noget i den stil du søger?

Private Sub Command1_Click()
    GlTekst = "DEtte Er En tEst"
    NyTekst = GlTekst
    Find = "E"
    ErstatMed = "e"
   
    For i = 1 To Len(GlTekst)
        If Mid(GlTekst, i, 1) = Find Then
            NyTekst = Left(NyTekst, i - 1) & ErstatMed & Right(GlTekst, Len(GlTekst) - i)
        End If
    Next
    MsgBox NyTekst
End Sub
Avatar billede sjh Nybegynder
28. maj 2003 - 17:26 #4
Jeg her måske ikke helt fåstået hvad der er du vel... :o)
Men den her giver dig kun ord og tal + klamer

'---------------------------------- Form1 ----------------------------------
Option Explicit

Private Sub Form_Load()
  'TrimWords = 26a4bbc(d)e3
  Me.Caption = TrimWords("26<|><|>a<|>4<|>b<|>b<|>c<|>(<|>d<|>|)<|>e<|>3<......")
End Sub

Public Function TrimWords(ByVal strText As String) As String
Dim i As Long
Dim strOut As String
Dim strOne As String
  For i = 1 To Len(strText)
    strOne = Mid$(strText, i, 1)
    Select Case strOne
          Case "A" To "Z", "a" To "z", "0" To "9", "(", ")"
            'ved ikke om du skal bruge disse 2 "(" ")"
            strOut = strOut & strOne
    End Select
  Next i
  TrimWords = strOut
End Function
'---------------------------------- Form1 ----------------------------------
Avatar billede firehat Nybegynder
15. juli 2003 - 11:35 #5
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester