Symulator pomaga

Proste przykłady do częstych pytań.
ODPOWIEDZ
Awatar użytkownika
niveasoft
Posty: 1207
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Symulator pomaga

Post autor: niveasoft » 26 wrz 2018, 12:28

Na stronie już pokazywałem jak można przetestować czas wykonywania się jakiegoś kodu.
Pokażę tu kolejny przykład.
Standardowy string jaki zwraca wbudowana funkcja Date$ to osiem znaków pozbawione tysięcy i setek lat czyli "26/09/18"
Jeśli mamy potrzebę by rok był zapisany w sposób "26/09/2018" to już wymaga trochę "gimnastyki"
Symulator może pomóc w doborze rozwiązania i pokazuje, że użycie nawet funkcji MID może dwukrotnie sprawę przyspieszyć...

Nie chodzi tu o jakieś każdorazowe optymalizacje tylko nabieranie lepszych nawyków.
Sprawdzisz raz i na drugi raz nie zastanawiasz się przy innym rozwiązaniu tylko śmigasz na skróty :D
  1. $regfile = "m32def.dat"
  2. $crystal = 8000000
  3. $hwstack = 64
  4. $swstack = 32
  5. $framesize = 128
  6. $sim
  7.  
  8. Config Clock = User
  9. Config Date = Dmy , Separator = "/"
  10.  
  11. Dim Date_str As String * 15
  12.  
  13. _day = 26
  14. _month = 9
  15. _year = 18
  16. Date_str = "26/09/18"                                       'zamiana na 26/09/2018
  17.  
  18. nop
  19.  
  20.   Date_str = Date(_day)
  21.   Date_str = Mid(date_str , 1 , 6) + "20"
  22.   If _year < 10 Then Date_str = Date_str + "0"
  23.   Date_str = Date_str + Str(_year)                          '3484c 0.43ms
  24.  
  25.  If _day < 10 Then Date_str = "0" Else Date_str = ""
  26.  Date_str = Date_str + Str(_day) + "/"
  27.  If _month < 10 Then Date_str = Date_str + "0"
  28.  Date_str = Date_str + Str(_month) + "/20"
  29.  If _year < 10 Then Date_str = Date_str + "0"
  30.  Date_str = Date_str + Str(_year)                           '9770c 1.22ms
  31.  
  32.  
  33.  nop
  34.  
  35.   Print Date_str
  36.  
  37. End
ODPOWIEDZ