Avatar billede cronck Nybegynder
29. juli 2004 - 14:37 Der er 16 kommentarer og
1 løsning

Fjern tekst fra streng

HeY! Så er det igen blevet tid til at dele point ud :D
Idag skal vi finde ud af hvordan man piller en stump ud af en tekst.

Hvis jeg har teksten "Jensen#Denmark#KnupSkull#Russia#Buller#Sweden"
Hvordan piller jeg så KnupSkull#Russia ud af teksten?
Hvis KnupSkull er den første i teksten, skal den også pille "#" ud efter Russia, og hvis det var den sidste, skal den ikke efterlade nogen "#"'er efter strengen.
Når så KnupSkull#Russia, står inde midt i teksten, skal enten det første # pilles ud, eller det sidste...

Hvordan gør man alt dette?
Avatar billede ldanielsen Nybegynder
29. juli 2004 - 14:51 #1
strTeksten = "#" & strTeksten & "#"
strTeksten = Replace(strTeksten, "KnupSkull#Russia", "")
strTeksten = Replace(strTeksten, "##", "#")
strTeksten = Mid(strTeksten, 2, Len(strTeksten) - 2)
Avatar billede ldanielsen Nybegynder
29. juli 2004 - 14:52 #2
Men hvad med at arbejde med et array i stedet?
Avatar billede cronck Nybegynder
29. juli 2004 - 15:04 #3
Sidste Linie "Invalid procedure call or argument"
Avatar billede cronck Nybegynder
29. juli 2004 - 15:06 #4
Hmm... Altså, jeg tilføjer brugere som joiner en chat til den liste... Her er scriptet som jeg bruger til at tilføje brugere med:

Public Function ChattersListAdd(User As String, Country As Variant)
If ChattersList = "" Then
    ChattersList = User & "#" & Country
Else
    ChattersList = ChattersList & "#" & User & "#" & Country
End If
End Function

Og sådan her ser mit "remove" script ud nu:

Public Function ChattersListRemove(User As String, Country As Variant)
    ChattersList = "#" & ChattersList & "#"
    ChattersList = Replace(ChattersList, User & "#" & Country, "")
    ChattersList = Replace(ChattersList, "##", "#")
    ChattersList = Mid(ChattersList, 2, Len(ChattersList) - 2)
End Function
Avatar billede cronck Nybegynder
29. juli 2004 - 15:12 #5
Men hvis du har nogle bedre idéer til hvordan det skal gøres, er jeg fuldt ud åben overfor idéer... Jeg er ret ny i VB, og skal derfor lige lære det meste af det :D
Men jeg ved dog hvordan arrays fungerer :o)
Avatar billede cronck Nybegynder
29. juli 2004 - 15:56 #6
Nej, nu virker det sq! :D
Takker dig mange gange for hjælpen!
Avatar billede cronck Nybegynder
29. juli 2004 - 16:00 #7
Næh, tog jeg tog fejl... :(
Avatar billede martin_moth Mester
29. juli 2004 - 16:01 #8
Læs i hjælpen om:

Mid()
Left()
Right()

Trim()
LTrim()
RTrim()

InStr()
Split()
Replace()

Derefter kan du lave alle de manipulationer med textstrenge du måtte ønske!
Avatar billede cronck Nybegynder
29. juli 2004 - 16:04 #9
Der er ikke nogen hjælp fil..? Den siger at jeg skal installere MSDN?
Avatar billede cronck Nybegynder
29. juli 2004 - 16:08 #10
Hmm... Hvis jeg havde en funktion til at se om "BlaBla#China" var den første eller sidste i strengen, ville det gøre det nemt at fjerne med Replace(), for så ved jeg jo hvor mange #'er jeg skal flytte, og hvor fra...
Avatar billede martin_moth Mester
29. juli 2004 - 16:38 #11
Du kan ALT hvad du vil ved at kombinere ovenstående funktioner... Eneste begrænsning er din fantasi.

Hvis du ikke har hjælp/msdn, kan du bruge msdn på nettet.

Fx funktionen mid: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbenlr98/html/vafctmidx.asp
Avatar billede martin_moth Mester
29. juli 2004 - 16:47 #12
glemte Len(), Lcase(), Ucase(), og måske Chr() og Asc(), der også er nyttig.

Eksempel:

Denne kode finder de 3 bogstaver foran det bageste "w" i en sætning (hvad man så skal bruge det til):

Dim i as long
Dim strTest as string
strTest = "h h dg drtert w rdge w gtht w qwq"

if instr(1,strtest,"w") = 0 then
  msgbox "Der er intet w i din string"
exit sub
For i = len(strtest) to 1 step -1
  if mid(strtest,i,1) = "w" then
    msgbox "Tegnet foran sidste w er " & mid(strtekst,i-3,3)
    exit for
  end if
next i

Resultatet er noget i retning af "w q"

Bare et eksempel
Avatar billede cronck Nybegynder
29. juli 2004 - 18:25 #13
Hm...
Ville det aller nemmeste ikke være at tjekke om det startede med den stump teks, eller sluttede med det?
for hvis at det er i midten kan jeg jo bare fjerne et # efter den stump tekst som skal fjernes....
Avatar billede martin_moth Mester
30. juli 2004 - 07:59 #14
Det må du bedst selv vide...
Avatar billede cronck Nybegynder
30. juli 2004 - 11:29 #15
Det er faktisk lige meget nu, jeg er sprunget over til VB .NET i stedet for 6.0 :-)
Avatar billede martin_moth Mester
30. juli 2004 - 12:22 #16
Det løser næppe problemet. Men fornuftigt spring, hvis man ellers har muligheden.
Avatar billede cronck Nybegynder
31. juli 2004 - 02:16 #17
Der findes nogle freeware programmer til at lave VB.NET med... SharpDev eller sådan noget..
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