Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ubacivanje razmaka

[es] :: Visual Basic 6 :: ubacivanje razmaka

Strane: 1 2

[ Pregleda: 5175 | Odgovora: 23 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


+1 Profil

icon ubacivanje razmaka14.02.2008. u 17:35 - pre 197 meseci
Treba mi mala pomoc npr. ako imam u textbox1 rec ovakvu TheEndIsClose,treba mi kod koji ce da razdvoji to ovako The End Is Close,odnosno gde god dodje veliko slovo,da pre njega bude razmak,tnx ;)
 
Odgovor na temu

steve585
Stevan Stanić
Project Manager
Zagreb

Član broj: 131815
Poruke: 281
*.xnet.hr.



+1 Profil

icon Re: ubacivanje razmaka14.02.2008. u 18:34 - pre 197 meseci
Pokusaj ovako:
Definiraj velika slova npr. chr(65) trebalo bi biti veliko slovo A i tako 30 puta za ostala velika slova
Onda pomocu funkcije mislim da je Mid() ispituj vrijednost svakog slova, ako ti se vrijednost slova nalazi u naprijed navedenom nizu na promjenjivu NovaRijec dodaj vrijednost nadjenog velikog slova i Space(1) u protivnom na promjenjivu NovaRijec dodaj samo vrijednost nadjenog slova

To je prvo sto mi pada na pamet :-)
steve585
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


+1 Profil

icon Re: ubacivanje razmaka14.02.2008. u 18:47 - pre 197 meseci
Uh,mora da to moze prostije,sacekacu josh neki predlog ako bude imao :D
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12850



+4784 Profil

icon Re: ubacivanje razmaka14.02.2008. u 19:06 - pre 197 meseci
E, ovako, ovo bi trebalo da bude princip, ali posto VB6 ima gomilu razlicitih varijanti za pocetak index-a (negde ide od nule negde od jedan) ovo ne radi. A mene iskreno mrzi da se zezam sa nedoslednoscu istog, ali mislim da ti je bitno da skontas poentu pa ces sam srediti brojanja.
Ovo je uradjeno racunajuci da se uvek krece od nule (i dobices error kod Mid() funkcije):

Code:

Private Function InsertSpace(aString As String, index As Integer) As String
    InsertSpace = Left(aString, index) & " " & Right(aString, Len(aString) - index)
End Function

Private Function DivideWords(aString As String) As String
    Dim i As Integer
    Dim result As String
    
    result = aString
    For i = 0 To Len(aString) - 1
        If UCase$(Mid(aString, i, 1)) = Mid(aString, i, 1) Then
            result = InsertSpace(result, i)
            i = i + 1
        End If
    Next i
    DivideWords = result
End Function

 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


+1 Profil

icon Re: ubacivanje razmaka14.02.2008. u 19:10 - pre 197 meseci
Hvala Shadowed,snaci cu se ;)
 
Odgovor na temu

galahad
Slobodan Todorov
Radio-televizija Vojvodine,
Jack-Of-All-IT-Trades, Web redakcija
Novi Sad

Član broj: 20613
Poruke: 146
*.ADSL.panline.net.

Jabber: galahad@elitesecurity.org
ICQ: 52020296
Sajt: www.todorowww.net


+4 Profil

icon Re: ubacivanje razmaka14.02.2008. u 19:15 - pre 197 meseci
Pokushaj to da reshish ovako, tj. da proverish da li je neshto upper case:

Code:

Dim i As Long
Dim s As String

s = Text1.Text
For i = 1 To Len(s)
  If (Mid(s, i, 1) = UCase(Mid(s, i, 1))) Then
    ' Ovde strpaj kod da ubacivanje space-a
  End If
Next i
Text1.Text = s


Text1.Text ubacujem u s, da bi bilo brzhe izvrshavanje koda, .Text property je spora kad se radi update, posebno vetjeg texta...
- SKRati link - JaZaKraljevo.rs -

"I have never let my schooling interfere with my education." - Mark Twain
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


+1 Profil

icon Re: ubacivanje razmaka14.02.2008. u 22:22 - pre 197 meseci
Kada uradim ovako izbacuje mi sledecu greshku:
Invalid Procedure or Argument i markira liniju InsertSpace = Left(aString, index) & " " & Right(aString, Len(aString) - index)


Code:
Private Sub Command1_Click()
Dim i As Long
Dim s As String
Dim result As String
s = Text1.Text
For i = 1 To Len(s)
  If (Mid(s, i, 1) = UCase(Mid(s, i, 1))) Then
    result = InsertSpace(result, i)
  End If
Next i
Text1.Text = s
End Sub
Private Function InsertSpace(aString As String, index As Long) As String
    InsertSpace = Left(aString, index) & " " & Right(aString, Len(aString) - index)
End Function
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12850



+4784 Profil

icon Re: ubacivanje razmaka14.02.2008. u 22:48 - pre 197 meseci
Hah, to je to sto kazem... Ne znam za koji index ti dodje do greske, ali pretpostavljam za poslednji, probaj staviti Left(aString, index - 1), eksperimentisi malo :)
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


+1 Profil

icon Re: ubacivanje razmaka14.02.2008. u 22:58 - pre 197 meseci
i dalje isto,ali sacu ja u to da se udubim,javicu vam shta sam napravio ;)

Edit:

e a kad uradim ovako onda mi umesto velikih slova upishe razmak :D

Code:
Private Function InsertSpace(aString As String, index As Long) As String
    InsertSpace = Left(aString, index - 1) & " " & Right(aString, Len(aString) - index)
End Function
Private Sub Command1_Click()
Dim i As Long
Dim s As String
Dim result As String
s = Text1.Text
For i = 1 To Len(s)
  If Mid(s, i, 1) = UCase(Mid(s, i, 1)) Then
    s = InsertSpace(s, i)
  End If
Next i
Text1.Text = s
End Sub
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: ubacivanje razmaka14.02.2008. u 23:34 - pre 197 meseci
evo po meni najelegantinjeg resenja:
Code:

Public Function AddSpaces(str As String) As String

    Dim re  As RegExp
    
    Set re = New RegExp
    
    re.Pattern = "([A-Z])"
    re.Global = True
    re.IgnoreCase = False
    
    AddSpaces = LTrim$(re.Replace(str, " $1"))

End Function

samo dodaj referencu na Microsoft VBScript Regular Expressions 5.5 (ovaj dll je ukljucen sa IE verzijom 5.5 i navise, znaci imas ga default instaliranog od 98-ice pa nadalje)
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12850



+4784 Profil

icon Re: ubacivanje razmaka14.02.2008. u 23:43 - pre 197 meseci
Slazem se.
Nisam ni znao za tu biblioteku. Dok sam radio u 6ici nisam koristio regexp a kasnije, pa... znas vec :]
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
77.46.195.*



+1 Profil

icon Re: ubacivanje razmaka15.02.2008. u 01:48 - pre 197 meseci
Zasto povlaciti dodatne biblioteke koje ce ti na svakom drugom racunaru verovatno praviti probleme kad mozes sam resiti problem.

Prosto:
Code:

Public Function fncUbaciSpace(ByVal myString As String) As String
    fncUbaciSpace = fncUbaciSpace + Mid$(myString, 1, 1)
    For t = 2 To Len(myString)
        If Asc(Mid$(myString, t, 1)) > 64 And Asc(Mid$(myString, t, 1)) < 91 Then
            fncUbaciSpace = fncUbaciSpace + " " + Mid$(myString, t, 1)
        Else
            fncUbaciSpace = fncUbaciSpace + Mid$(myString, t, 1)
        End If
    Next t
End Function

PS.
Kad god to ne iziskuje prevelik trud, izbegavaj da koristis dll biblioteke.

Pozdrav.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: ubacivanje razmaka15.02.2008. u 03:34 - pre 197 meseci
Citat:
stefanpn: Zasto povlaciti dodatne biblioteke koje ce ti na svakom drugom racunaru verovatno praviti probleme....

Citat:
Aleksandar Ružičić: ....(ovaj dll je ukljucen sa IE verzijom 5.5 i navise, znaci imas ga default instaliranog od 98-ice pa nadalje)

hmm, cisto sumnjam da postoji neki racunar sa instaliranom 95-icom...


edit: evo okacio sam tutorijal o regularnim izrazima: Regularni izrazi u VB6

[Ovu poruku je menjao Aleksandar Ružičić dana 15.02.2008. u 06:14 GMT+1]
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.eunet.yu.

Sajt: www.vasictech.net


+1 Profil

icon Re: ubacivanje razmaka15.02.2008. u 10:19 - pre 197 meseci
e hvala vam puno :D
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
77.46.195.*



+1 Profil

icon Re: ubacivanje razmaka15.02.2008. u 13:21 - pre 197 meseci
@ Aleksandar Ružičić

Ok, postoji, ali izvrsna datoteka treba da bude sto manje zavisna od drugih datoteka.
I zasto pozivati spoljne funkcije kada moze to da zavrisi sa 5 linija koda, i to istom brzinom kao dll.
Po meni VB je najjaci u manipulaciji stringovima i zato treba iskoristiti njegov potencijal.

P.S. Sta ce biti ako jednog dana ceo projekt zvani "WINDOWS" padne u vodu, i mi svi moramo da migriramo na neku drugu platformu. Da li cemo plakati za Win32 Dll bibliotekama zbog nase danasnje lenjosti da posao zavrsimo na svoj nacin!
Mislim da je resenje DLL korak u nazad za nekog ko vec nema logiku programiranja u glavi, dok ostalima samo ubrzava rad!

P.S.S. Jako me zanima tvoje misljenje o tome.

Pozdrav.


[Ovu poruku je menjao stefanpn dana 16.02.2008. u 02:57 GMT+1]
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: ubacivanje razmaka16.02.2008. u 02:18 - pre 197 meseci
Citat:
stefanpn: ...ali izvrsna datoteka treba da bude sto manje zavisna od drugih datoteka.

slazem se, ali ne kada govorimo o vb programu, iz razloga sto najobicniji program u vb-u zavisi od nekoliko dll fajlova. da bi pokrenuo program pisan u vb6, moras da imas instaliran vb6 runtime na toj masini, jel tako? e a znamo da ovaj runtime nije dolazio uz windows sve dok windows-a 2000.
a u ovom primeru koji sam ja dao, pomenuta biblioteka dolazi sa windows-om jos od verzije 98, znaci i ako nemas vb6 runtime sigurno imas vbscript regular expressions.
druga stvar, svaki, ne samo vb program, nego i c, c++ i td, tj bilo koji windows izvrsni fajl mora da zavisi on nekih biblioteka (kernel32.dll, user32.dll itd), jer tako je windows osmisljen i to ima svojih prednosti ali naravno i mana. nama ne vredi da se bunimo nego radimo sa tim sto nam je ponudjeno i da to na najbolji nacin iskoristimo.

Citat:
I zasto pozivati spoljne funkcije kada moze to da zavrisi sa 5 linija koda, i to istom brzinom kao dll.

ok u ovom slucaju je sasvim ok koristiti tvoj kod, ali ja sam rekao "najelegantnije" resenje, a i koristeci regularne izraze dobija bolju prosirivost, tj ako kasnije hoce, recimo da string "TheEndIsClose" zameni sa "Close Is The End" tj da doda razmake i jos da obrne redosled reci ovo moze da uradi sa jednostavnom izmenom regularnog izraza i ubacivanja dodatnih povratnih referenci u replace with stringu (znaci broj linija ostaje isti, samo se dve linije dopunjuju)

Citat:
P.S. Sta ce biti ako jednog dana ceo projekt zvani "WINDOWS" padne u vodu, i mi svi moramo da migriramo na neku drugu platformu. Da li cemo plakati za Win32 Dll bibliotekama zbog nase danasnje lenjosti da posao zavrsimo na svoj nacin!

to jednostavno nece nikad biti, ali da cemo morati da menjamo aplikacije, tj da ih prilagodjavamo novim verzijama windowsa to je sasvim normalno...
a i jedan od razloga zasto je uradjen koncept dll (dynamic link library) je upravo zbog portabilnosti koda izmedju razlicitih verzija windowsa

Citat:
Mislim da je resenje DLL korak u nazad za nekog ko vec nema logiku programiranja u glavi, dok ostalima samo ubrzava rad!

kad smo vec kod logike da se malo osvrnemo na tvoj kod, jako me interesuje da mi objasnis zasto u prvoj liniji dodajes vrednost povratnoj vrednosti funkcije, iz razloga sto je na pocetku izvrsavanja funkcije ta promenljiva (fncUbaciSpace u tvom slucaju) initializovana na pocetnu vrednost tipa funkcije (u ovom slucaju inicijalizovana je na vbNullString), naravno vb ce ovo verovatno da optimizuje tako da nece biti razlike u izvrsnom fajlu, ali u izvornom kodu, tj logici ostaje (sto je malo nelogicno)
drugo, nisi deklarisao promenljivu t (ok verovatno ti je promaklo)
trece, jeste da je u pitanju malo parce koda ali ima par mesta na kojima bi kod mogao da se optimizuje (recimo, dva puta "cupas" karakter iz stringa, iako bi brze bilo da to radis jednom i da tu vrednost zapises u nekoj promenljivoj)

Pozdrav.


p.s. nemoj da mislis da te napadam sa ovim komentarima o kodu, ali kad si vec pomenuo logiku morao sam nesto da napisem :)
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
77.46.195.*



+1 Profil

icon Re: ubacivanje razmaka16.02.2008. u 02:43 - pre 197 meseci
Ma taman posla da me napadas!
Ja mislim da smo svi mi ovde da bi nesto naucili ili bar da bi pomogli drugima da nesto nauce.

1. Posto je ovo mali kod promenljiva t nije deklarisana jer je ja u svakom svom programu u deklaracijama deklarisem kao integer i sluzi mi kao Temp promenjiva za for petlje.

2. Kod nije optimizovan jer sam ga pisao oko 15 sec. (Ali 100% si u pravu si oko toga)

3. Znam odlicno da svaki Win32 exe zavisi od Win core-a (kernel32, user32 i sl.). VB je jos gori zbog Runtime-a

4. Sta da ti dodje zadatak da se pise program za X-BOX kome je jezgro Windows 2000 bez API-ja i Desktop-a, nema IE-a 5.5.

5. Nisam ni ja tebe zeleo da prozovem, izvini ako si se osetio prozvanim.

6. Samo sam hteo da kazem da bi momku koji je postavio mozda bolje bilo da nauci kako to da odradi sam.

7. Mislim da Ubuntu Linux strahovito brzo napreduje ka svima, a Vista je po meni potpun promasaj jer sem podrske za vise od 4GB Ram-a (Ultimate) i Lepe grafike ne nudi nista vise. Cak i ako su odradili DX10 samo za Vistu to im nije pomoglo. Ljudi koji su kupili PC-je sa legalnom Vistom mahom su je zamenili za XP sa budjavog PRINCO diska.

Za 7. stavku sam samo hteo da kazem da je sve moguce...

Pozz. I sve najbolje u radu.

[Ovu poruku je menjao stefanpn dana 16.02.2008. u 04:08 GMT+1]
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: ubacivanje razmaka16.02.2008. u 16:29 - pre 197 meseci
1. ok rekao sam da si verovatno zaboravio da je deklarises (licno mi se ne svidja taj tvoj nacin da deklarises promenljivu kao globalnu samo da bi ti koristila kao brojac u petljama, ako je deklarises kao lokalnu dobijas vec brzu - teoretski, u praksi je retko kad primetno, iz razloga sto se lokalne promenljive nalaze na steku u frejmu funkcije i mnogo je brzi pristupiti njoj nego promenljivoj koja je deklarisana kao globalna i nalazi se u heap memoriji)

2. razumemo se

3. gori ili ne takav je :)

4. onda sigurno ne bi pisao program u vb-u :p

5. naravno da se nisam osetio prozvanim, diskutujemo samo

6. ne sumnjam ja da bi se The End snasao i da mu mi nismo pruzili nekoliko resenja, ja sam lepo rekao da je to po meni najelegantnije resenje

7. dobar je ubuntu (mada ja koristim Kubuntu), ali Vista nikako nije za potcenivanje, sacekaj da malo prodje vremena pa ces videti. koliko god da linux-i budu napredovali u odnosu na windows (iako je to samo prividno, windowsov kernel je daleko ispred linux kernela) i koliko god da windows bude bio zahtevan i skup uvek ce moja primarna masina biti ona sa windows-om (naravno, tad cu se valjda zaposliti pa necu morati pirate da koristim) a linux bih koristio (kao i do sad) samo ako treba neki cross-platform programcic da iskompajliram za linux...


i da se osvrnem na tvoju predhodnu poruku, gde si rekao da je VB6 dobar u radu sa stringovima: tu se ne slazem sa tobom iz sledecih razloga:

1. sve operacije sa stringovima su dosta spore (jedan od razloga je sto je vb-ov string ustvari wide-string, tj unicode string)
2. nema ugradjene regularne izraze, sto je najmocnije oruzje u baratanju sa tekstom (da nije tako, ne bi regexp bio ukljucen u .net-u)
3. opet pod 1. :)
 
Odgovor na temu

stefanpn
Total anonymous
Programer

Član broj: 172809
Poruke: 509
77.46.195.*



+1 Profil

icon Re: ubacivanje razmaka16.02.2008. u 18:38 - pre 197 meseci
Razumemo se mi skroz...

Samo kada sam rekao da je VB dobar sa stringovima mislio sam na to da ima puno funkcija za manipulaciju stringovima, a ne na to koliko ih brzo obradjuje. :)

I ne zelim da ova diskusija preraste u to sta je bolje Windows ili Linux. (Hajde da otvorimo novu temu :) )
Po meni oba dva poticu od UNIX-a (to je samo moje misljenje)
Linux je direktan naslednik / kopija.
Dok je Windows stvoren pod uticajem UNIX-a.

Sto se kernela tice, ja bas i ne vidim zasto je Win kernel bolji od Linuxovog.
To je kao: Zvezda ili Partizan

Mada sto se tice Viste, ja sam se bunio i kad se pojavio XP, ali sad sta je tu je.

Mala sala:

Windows je pun rupa, a Linux je jedna velika rupa

Ovo je samo sala, ja bas i ne mislim tako...
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12850



+4784 Profil

icon Re: ubacivanje razmaka16.02.2008. u 19:18 - pre 197 meseci
Pa, i nema bas neko bogatstvo funkcija za rad sa stringovima. Eto, nema ni obican insert.
A sto se brzine tice, tu je drugi problem, u nacinu na koji se interno radi sa istima, mnogo se kopiraju po memoriji. To je slucaj i sa .net-om (nezavisno od jezika, pa su zato napravili StringBuilder klasu).
 
Odgovor na temu

[es] :: Visual Basic 6 :: ubacivanje razmaka

Strane: 1 2

[ Pregleda: 5175 | Odgovora: 23 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.