mojaSymfonia FORUM
https://forum.mix-soft.pl/

Wyszukanie ukośnika
https://forum.mix-soft.pl/viewtopic.php?f=15&t=3057
Strona 1 z 1

Autor:  zz [ 2011-04-15, 10:18 ]
Tytuł:  Wyszukanie ukośnika

Witam.
Chcę wyszukać ukośnik "/" w stringu.
Jak to zrobić? Próbowałem "/" i "\/" (jako znak specjalny) i ...nic :(

Autor:  Misiek [ 2011-04-15, 11:36 ]
Tytuł: 

może tak ?
Kod:
buf = "FSV 128\MAG/2011"

if find "\/" then message "znalazłem znak /\n:-)"

error ""

Autor:  zz [ 2011-04-15, 15:32 ]
Tytuł: 

Nawet gdyby zadziałało, to za mało ;)
Potrzebuję numer pozycji, na której występuje w ciągu.

Autor:  Misiek [ 2011-04-15, 15:35 ]
Tytuł: 

zz pisze:
Nawet gdyby zadziałało, to za mało ;)

A nie działa ?


zz pisze:
Potrzebuję numer pozycji, na której występuje w ciągu.


O tym nie pisałeś więc... tak na szybko, może mało optymalnym kodem ale działa...

Kod:
buf = "FSV 128\MAG/2011"
string txt

if Find Regular "*//" then
   txt = Delete Regular "*//"
   message using "znalazłem znak / na pozycji %d\n:-)", Len(txt) + 1
endif

error ""

Autor:  zz [ 2011-04-15, 15:49 ]
Tytuł: 

Działa.
Ale co ja mam źle?

Kod:
buf = "abc/123"
int i, iDlDw=len(buf)
string sZnak
for i=1 to i>iDlDw
sZnak=mid(buf,i,1)
if sZnak="\/" then
message using "%i", i            
endif
next i

Autor:  wrob [ 2011-04-15, 15:57 ]
Tytuł: 

A jesli uzyc takiego strasznego pojecia jak rekurencja?

cos w stylu (vba):

Kod:
function pozycja(tekst,szukany,od)
if (mid(tekst,od,1))=szukany then
     msgbox od
else
     pozycja(tekst,szukany,od+1)
end if
end function




PS to masz zle ->

Kod:
if sZnak="\/" then



lepiej tak:
Kod:
if sZnak=="/" then



i nie uzywaj zmiennej buf - to nazwa specjalna

Autor:  Misiek [ 2011-04-15, 16:21 ]
Tytuł: 

Jeszcze jedna wersja - bez buf'a :-)

Kod:
string txt = "FSV 128\MAG/2011"
int i

for i = 1 to i > Size(txt)
   if txt(i) == 47 then // 47 = kod ASCI znaku
      message using "znalazłem znak / na pozycji %d\n:-)", i + 1
      Exit
   endif
next i

error ""

Autor:  zz [ 2011-04-18, 07:58 ]
Tytuł: 

Właśnie o taką funkcję (odpowiednik CHR-a z VB) mi chodziło - w helpie jej nie znalazłem.
Ponieważ nie mogę postawić dwóch punktów, 'zarabia' Misiek (jako pierwszy odpowiadający).

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/