Citat:
rgdrajko:
Program je uradjen bez funkcije Split radi lakseg razumevanja.
Pa nije bas svima funkcija Split teska za razumevanje
Evo opis funkcije iz MSDN-a:
Citat:
Description
Returns a zero-based, one-dimensionalarray containing a specified number of substrings.
Syntax
Split(expression[, delimiter[, count[, compare]]])
The Split function syntax has these parts:
Part Description
expression Required.String expression containing substrings and delimiters. If expression is a zero-length string(""), Split returns an empty array, that is, an array with no elements and no data.
delimiter Optional. String character used to identify substring limits. If omitted, the space character (" ") is assumed to be the delimiter. If delimiter is a zero-length string, a single-element array containing the entire expression string is returned.
count Optional. Number of substrings to be returned; –1 indicates that all substrings are returned.
compare Optional. Numeric value indicating the kind of comparison to use when evaluating substrings. See Settings section for values.
Settings
The compare argument can have the following values:
Constant Value Description
vbUseCompareOption –1 Performs a comparison using the setting of the Option Compare statement.
vbBinaryCompare 0 Performs a binary comparison.
vbTextCompare 1 Performs a textual comparison.
vbDatabaseCompare 2 Microsoft Access only. Performs a comparison based on information in your database.
Svaki normalan programski jezik ima funkciju za "splitovanje" teksta u niz, pa necemo valjda umesto 1 reda koda stalno pisati 10 ili 15?
Code:
varNiz = Split("1,2,3,4,5,6,7", ",")
ili prostim recnikom: Iz teksta "1,2,3,4,5,6,7" napravi niz tako sto ces uzeti sve delove teksta odvojene zarezom.
Moze li ovako jednostavno i ipak puno jasnije nego ona "kobasica". Da li je moguce da vise ne raspravljamo ovde o nekim osnovnim stvarima?
P.S. Uz osnovno testiranje mogao si da vidis da funkcija "IzTextBoxauListBox", ako je izolovano posmatras, ne vraca poslednji red teksta, a da ne spominjem sto vecno stoji u petlji i nikad se ne ispuni uslov izlaska iz nje
A evo i izvorni tekst tvoje funkcije, za svaki slucaj, kako ti rece "Ako koza laze ...":
Code:
Public Sub IzTextBoxauListBox()
List1.Clear
nekitekst = Text1.Text
pocetak = 1
Do While kraj < Len(nekitekst)
'Posto je iza svake reci znak vbNewLine tj. vbCr+vbLf trazimo vbLf
If InStr(pocetak, nekitekst, vbLf) Then
kraj = InStr(pocetak, nekitekst, vbLf)
nekarec = Mid(nekitekst, pocetak, kraj - pocetak - 1)
List1.AddItem nekarec
pocetak = kraj + 1
End If
DoEvents
Loop
End Sub
Ako si bas hteo "cist i jednostavan pristup" onda si trebao u ovoj funkciji da pre obrade dodajes na kraj teksta vbCrLf na ovaj nacin:
Code:
Public Sub IzTextBoxauListBox()
List1.Clear
nekitekst = Text1.Text & vbCrLf
pocetak = 1
...
End Sub
a ne da "poturas" korisniku ovaj karakter u Text1_Change() dogadjaju:
Code:
Private Sub Text1_Change()
'Svaka promena u Text boxu(brisanje, pisanje se automatski menja i u List box-u)
If Right(Text1.Text, 1) <> vbLf Then
Text1.Text = Text1.Text & vbCrLf
End If
Call IzTextBoxauListBox
End Sub
[Ovu poruku je menjao goranvuc dana 14.07.2007. u 08:54 GMT+1]