Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-11-22, 13:59x



Odpowiedz w temacie  [ Posty: 8 ] 
Move - ciekawostka 
Autor Wiadomość

Rejestracja: 2009-12-09, 16:02
Posty: 33
Post Move - ciekawostka
Poniżej dwie funkcje, które (teoretycznie) robią to samo. Kod2 powstał właśnie w wyniku tego, że Move To źle działa. (Sprawdzane w Handel Premium i Handel Forte).
Kod:
string sub Kod(string s)
buf = s
   if len(s) < 6 then
      Move To 3
      Insert "-"
   endif
   Kod = buf
endsub

string sub Kod2(string s)
buf = s
int i = Move 0

   if len(s) < 6 then
      Move (3-i)
      Insert "-"
   endif
   Kod2 = buf
endsub

print Kod(""),  Kod("1"),  Kod("12"),  Kod("123"),  Kod("1234"),  Kod("12345"),  Kod("123456"),  lf
print Kod2(""), Kod2("1"), Kod2("12"), Kod2("123"), Kod2("1234"), Kod2("12345"), Kod2("123456"), lf

Oczywiście można też to zrobic np. tak:
Kod:
string sub Kod3(string s)
   Kod3 = s
   if len(s) < 6 then
      Kod3 = mid(s, 1, 2 ) + "-" + mid(s, 3, 3)
   endif
endsub


2010-01-21, 13:32
Wyświetl profil
Autor Wiadomość
 


Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post 
napisz krótko jaki efekt chciałeś osiągnąć.
co to ma robić?

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2010-01-21, 14:38
Wyświetl profil

Rejestracja: 2009-12-09, 16:02
Posty: 33
Post 
To miało na TRZECIEJ pozycji ciagu znaków wstawiać myslnik (jak w kodzie pocztowym). A powyższy kod miał pokazać złe działanie polecenia Move To (zwłaszcza dla ciągów o długości dokładnie 3 znaków).


2010-01-21, 15:00
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post 
chyba masz rację. dziwnie się zachowuje przy move to x gdzie x jest równy długości ciągu.

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2010-01-21, 18:15
Wyświetl profil
Ekspert
Ekspert
Awatar użytkownika

Rejestracja: 2009-03-07, 11:13
Posty: 597
Pomógł: 34
Post 
rafal pisze:
dziwnie się zachowuje

Rafał, ująłeś to baaaardzo dyplomatycznie :-) . Ja pozwolę sobie powiedzieć wprost: jest błąd ambasicu dyskwalifikujący polecenie move to i, gdy i!=0. Dzięki za info MMM.


2010-02-02, 17:50
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post 
No ja uzywałem do tej pory tylko
Kod:
move to 1
i działa

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2010-02-02, 17:53
Wyświetl profil

Rejestracja: 2007-12-13, 23:19
Posty: 367
Pomógł: 2
Post 
zaraz dyskwalifikacja, błęty...
nudzi się kolegom


raz używacie
move 4
a raz
move to 4

a to tak mieć 1000 złotych
i oddać komuś 1000 złotych

po obu operacjach nie zawsze będziemy mieć tyle samo pieniedzy...

int i = Move 0
przesunać się o zero będąc na pierwszej pozycji - ciekawe gdzie koledzy by chcieli być?


2010-03-07, 21:06
Wyświetl profil
Ekspert
Ekspert
Awatar użytkownika

Rejestracja: 2009-03-07, 11:13
Posty: 597
Pomógł: 34
Post Re: Move - ciekawostka
Workaround. Zamiast
Kod:
move to x
trzeba robić:
Kod:
move to 1
move x-1


EDIT: przed chwilą musiałem poprawić, bo machnąłem się o 1. Ale teraz chyba już dobrze. O dziwo move to 1 działa prawidłowo nawet dla ciągu 1 znakowego, czyli ustawia się przed pierwszym znakiem.


2012-08-23, 11:14
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 8 ] 

Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 34 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Support forum phpbb by phpBB Assistant