/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
sub or function not defined...?
Fra : Robert Larsen


Dato : 20-11-04 20:18

Hej i gruppen.

Sidder og er ved at lave en program, som egentlig vilder mig nogle
problemer. Men i kan helt sikkert hjælpe mig...

Problemet er at jeg har en rutine, som skal ( Splitte ) en tekst streng op.
Til det har jeg fundet en Splitter function på nettet, som så ligger i
modulet. Sådan ser den ud.:::

(Module)

Public Function Splitter(SplitString As String, SplitLetter As String) As
Variant
ReDim SplitArray(1 To 1) As Variant
Dim TempLetter As String
Dim TempSplit As String
Dim i As Integer
Dim x As Integer
Dim StartPos As Integer

SplitString = SplitString & SplitLetter


For i = 1 To Len(SplitString)
TempLetter = Mid(SplitString, i, Len(SplitLetter))


If TempLetter = SplitLetter Then
TempSplit = Mid(SplitString, (StartPos + 1), (i - StartPos) - 1)

If TempSplit <> "" Then
x = x + 1
ReDim Preserve SplitArray(1 To x) As Variant
SplitArray(x) = TempSplit
End If
StartPos = i
End If
Next i
Splitter = SplitArray
End Function

(Module Slut)


For så at kunne bruge det skal man kalde.

splitreturn = Splitter("Tekst,Tekst1,Tekst2, OSV, ",")

Hvor splitreturn er.

Dim SplitterReturn As Variant

Det virker i og for sig godt nok. Problemet er at når jeg har splittet en
tekst op og skal have fjernet mellemrummet, så gjorde jeg sådan...

splitreturn(3) = Replace(splitreturn(3), Chr(34), "")
splitreturn(4) = Replace(splitreturn(4), Chr(34), "")
splitreturn(5) = Replace(splitreturn(5), Chr(34), "")
splitreturn(6) = Replace(splitreturn(6), Chr(34), "")
splitreturn(7) = Replace(splitreturn(7), Chr(34), "")
splitreturn(8) = Replace(splitreturn(8), Chr(34), "")
splitreturn(9) = Replace(splitreturn(9), Chr(34), "")
splitreturn(10) = Replace(splitreturn(10), Chr(34), "")

Det virker godt nok, så længe at det forgår i Form_Load.

For at det skulle gøres lidt enkelt, vil jeg gerne have det i en SUB
function for sig selv. Jeg har så gjort sådan.

Public Sub SplitReplace(FraNum As Integer, TilNum As Integer) ' FraNum kan
være 3 Og TilNum kan være 10
Dim Taeller As Integer

For Taeller = FraNum To TilNum

splitreturn(Taeller) = Replace(splitreturn(Taeller), Chr(34), "")
^^^^^^^^

Next Taeller

End Sub

Men når jeg så prøver at køre det får jeg overnævnt fejl, på Splitreturn -
Se pile.

Håber at der er nogle der kan hjælpe, for jeg har set mig blind på det.:(

Mvh
Robert Larsen




 
 
preben nielsen (21-11-2004)
Kommentar
Fra : preben nielsen


Dato : 21-11-04 08:32


"Robert Larsen" <robert@larsen.FJERNtdcadsl.dk> skrev i en
meddelelse news:419f9877$0$295$edfadb0f@dread12.news.tele.dk...
> Hej i gruppen.
>
> Sidder og er ved at lave en program, som egentlig vilder mig
> nogle
> problemer. Men i kan helt sikkert hjælpe mig...
>
> Problemet er at jeg har en rutine, som skal ( Splitte ) en tekst
> streng op.
> Til det har jeg fundet en Splitter function på nettet, som så
> ligger i
> modulet. Sådan ser den ud.:::

Du bruger "Option Explicit" som første instruktion i ALLE moduler,
forms, classes ? Gør du ?

Du skriver:
>Dim SplitterReturn As Variant

Du skriver:
> splitreturn(Taeller) = Replace(splitreturn(Taeller), Chr(34),
> "")

Hvor er (funktionen) splitreturn erklæret henne lol


Bruger du VB5 eller ældre siden du ikke bruger den indbyggede
Split() funktion ?

> Håber at der er nogle der kan hjælpe, for jeg har set mig blind
> på det.:(

Oh man...... :D


--
/\ preben nielsen
\/\ prel@post.tele.dk



Robert Larsen (25-11-2004)
Kommentar
Fra : Robert Larsen


Dato : 25-11-04 12:40

Beklager min lange svar...:)

> Du bruger "Option Explicit" som første instruktion i ALLE moduler,
> forms, classes ? Gør du ?

Ja...:)

> Du skriver:
> >Dim SplitterReturn As Variant

> Du skriver:
> > splitreturn(Taeller) = Replace(splitreturn(Taeller), Chr(34),
> > "")
>
> Hvor er (funktionen) splitreturn erklæret henne lol

I form_Load

> Bruger du VB5 eller ældre siden du ikke bruger den indbyggede
> Split() funktion ?

Niksen, Bruger VB6, men hviste faktisk ikke at den havde denne funktion, men
man lære jo noget nyt hver gang.:)

> > Håber at der er nogle der kan hjælpe, for jeg har set mig blind
> > på det.:(
>
> Oh man...... :D

Det sagde jeg også, da jeg fandt ud af hvad der var galt.... Jeg havde
stavet Splitreturn forkert i Dim ....

Så til andre der bøvler, så handler der om at KUNNE stave, og stave
rigtig....

Surt show....


Men du skal have tak for hjælpen..

Robert



Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409079
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste