Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Szukanie w split
mikmas
From Łódź Stadt




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

mam:

dim blebleble as Variant
blebleble=split("a;b;c;d;e;f",";"

No i muszę w tym "blebleble" wyszukać "d" niestety nie mogę tego zrobić za pomocą pętli, bo jak będę miał dużo liter, to się będzie ciąć . Czy jest funkcja, która znajdzie, w którym indexie w "blebleble" jest ta litera?


_____________________________________________
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

28-08-2004 16:32
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
marcin_an
Forumowicz




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

Nie znam, ale możesz to zastąpić tym - będziesz mógł to zrobić wogóle bez Split. A jeśli uprzesz się, żeby zrobić to Split, to poniższy kod i tak zwraca ci numer komórki w tablicy.

Dim sSource As String
Dim nLitera As Long
Dim sSzukanaLitera As String

sSzukanaLitera = "c"
sSource = "a;b;c;d;e;f"
sSource = Replace(sSource, ";", "" )
nLitera = InStr(sSource, sSzukanaLitera)


[Post edytowany dnia 28-08-2004 17:23 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

28-08-2004 17:22
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

Nie do końca o to mi chodziło. "a;b;c;d" - to jest przykład, ale dane będą typu "High Porta.1;Delayms 1000 ..." nie znam długości poszczególnych wytypowanych textów


_____________________________________________
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

28-08-2004 22:26
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
marcin_an
Forumowicz




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

Jeśli nie użyjesz funkcji Split, to nie będziesz miał tablicy i to ci całkowicie wystarczy.

Jeśli jednak potrzebujesz tablicy... nie mam pomysłu... tylko przeszukiwanie kolejnych pól pozostaje.

Ewentualnie, jeśli wpis będzie miał jakąś maksymalną długość - możesz użyć stałych długości pól - wtedy możesz zrobić to dokładnie tak samo, jak opisałem, tyle, że będziesz musiał przemnożyć wynik przez długość pola, żeby mieć index.


_____________________________________________
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

28-08-2004 22:51
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
bisiek




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

Jeżeli chcesz to znaleść w tablicy możesz to zrobić tak:

Text = "a;b;c;d;e;f;d"
szukany = "d"

a = Split(Text, ";"

b = InStr(1, Text, szukany)
pos = Len(Left$(Text, b)) - Len(Replace(Left$(Text, b), ";", "")
MsgBox a(pos)


poda pierwsze pole zawierające szukany ciąg.


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

29-08-2004 10:33
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
mikmas
From Łódź Stadt




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

Nie wiem jak to działa, ale działa . Dzięki!


_____________________________________________
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-08-2004 13:42
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
bisiek




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

Poprawka do dzielenia ciągiem dłuższym niż jeden znak

Text = "a;b;c;d;e;f;d"
szukany = "d"
dziel = ";"

a = Split(Text, dziel)

b = InStr(1, Text, szukany)
'Sprawdza ile jest średników przed pierwszym znalezionym ciągiem
pos = (Len(Left$(Text, b)) - Len(Replace(Left$(Text, b), dziel, "" )))/ len(dziel)

MsgBox a(pos)


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

29-08-2004 15:54
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
Wszystkich odpowiedzi: 6 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1