Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Sprawdzanie ilości spacji
andrey
Łódź



Typ: neutral
Postów: 295
Zarejestrowany: Mar 2003
Sprawdzanie ilości spacji

Witam,
W sumie wstydze sie zadać to pytanie ale w jaki sposob policzyc ilość spacji? Zilustrue moje pytanie przykładem. Funkcja wczytuje łańcuch znaków
"          ala ma kota" i chcialbym się dowiedzieć programowo ile jest spacji przed słowem Ala Funkcja InStr odpada bo dla Chr(32) poda pierwsze wystapienie czyli 1 Czy musze ciac to w jakis sposob funkcja mid a potem uzywac funkcji Len? Macie jakiś pomysł?

Chciałbym odnaleźć jakis mało zasobożerny sposob i w miare szybki. Bo z petla odczytujaca znak po znaku i sprawdzajaca czy to jeszze Chr(32) sobie poradze moze znacie jakis prostszy sposob?

Z góry dziekuje za odpowiedz i czas przeznaczony na jej udzielenie
Pozdrawiam
Andrzej


_____________________________________________
http://www.carbondesign.pl/ - rowery poziome, trójkołówce, handbike-i, tuning, akcesoria

29-07-2004 14:33
Pokaż profil andrey  Wyślij email do andrey   Odwiedź stronę andrey       3078613
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

Jakby zamiast "ala ma kota" były liczby to nie ma problemu, ale tak to się da tylko funkcją mid


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

29-07-2004 14:48
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Jeżeli masz vb6 to najszybciej można tak:

dim a as variant

a= split(text," "
msgbox "Jest " & ubound(a) & " spacji."


_____________________________________________
www.mob.abc.pl - moja strona o VB

29-07-2004 14:54
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Dopiszę jeszcze jak to zrobić "normalnymi" metodami.

dim x as long, i as long

For i = 1 to len(text)
if mid$(text,i,1)=" " then x=x+1
next

ale ten sposób jest dużo wolniejszy (przy długich tekstach) od tego z funkcją split.


_____________________________________________
www.mob.abc.pl - moja strona o VB

29-07-2004 17:57
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004


nSpacje = Len(sText) - Len(LTrim(sText))


Gdzie sText to nasze "      Ala ma kota", a nSpacje to ilośc spacji na początku (wynik).

Bisiek: twoja funkcja liczy WSZYSTKIE spacje, a nie tylko te na początku

[Post edytowany dnia 29-07-2004 18:53 przez marcin_an]


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

29-07-2004 18:51
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Heh - jak zwykle nie doczytałem :/


_____________________________________________
www.mob.abc.pl - moja strona o VB

29-07-2004 19:01
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

A szybsza funkcja licząca ilosć spacji w ogóle:

nIlosc = Len(sText) - Len(Replace(sText, " ", "" ))


[Post edytowany dnia 29-07-2004 19:04 przez marcin_an]


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

29-07-2004 19:04
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
mikmas
From Łódź Stadt




Typ: neutral
Postów: 772
Zarejestrowany: Apr 2003

Tak, ale chyba w VB5 nie ma ltrim. Nie wiem nie pamiętam. Dawno to było,kiedy używałem VB5Pro. A Andrey ma VB5 EE


_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50

29-07-2004 19:43
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Niestety - tego nie wiedziałem, wszystkie przykłady, które podaję są pod VB6

[Post edytowany dnia 29-07-2004 20:00 przez marcin_an]


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

29-07-2004 19:59
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

dim x as long
x= len(text)

For i = 1 to 255
if i <> 32 then
if instr(1,text,chr$(i)) <> 0 and instr(1,text,chr$(i))-1 < x then x= instr(1,text,chr$(i)) -1
end if
next

msgbox x


_____________________________________________
www.mob.abc.pl - moja strona o VB

29-07-2004 20:33
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
andrey
Łódź



Typ: neutral
Postów: 295
Zarejestrowany: Mar 2003

Witam,
Muszę powiedzieć, że jestem oszołomiony ilością odpowiedzi na moje pytanie. Dziękuję mikmasowi za przypomnienie, że używam vb5EE i nie posiadam niektórych funkcji. Mam już odpowiedni modolz odpowiednikami funkcji z vb6 (Join, Split, StrReverse, InStrRev, Replace) więc chętnie zainteresuje sie przykładami co dał marin_an nie pomine jednak dobremu przyjrzeniu sie przykładom napisanym przez biśka.
W razie problemów będę pisał a także powiem jakie rozwiązanie uzylem
Dziękuję wszystkim
Pozdrawiam
Andrzej

PS.: w VB5EE jest funkcja LTrim

[Post edytowany dnia 29-07-2004 23:08 przez andrey]


_____________________________________________
http://www.carbondesign.pl/ - rowery poziome, trójkołówce, handbike-i, tuning, akcesoria

29-07-2004 23:07
Pokaż profil andrey  Wyślij email do andrey   Odwiedź stronę andrey       3078613
Wszystkich odpowiedzi: 10 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1