Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Co to jest źle?
gibcio




Typ: neutral
Postów: 39
Zarejestrowany: Oct 2004
Co to jest źle?

Dim I As Integer
Dim sWrt As String
If Text1.Text = "" Then 'Nie ma różnicy, ale jestem przyzwyczajony do takiego rozwiązania
If Trim(Text1.Text) <> "" Then
Dim Jest As Boolean
For I = 1 To UBound(sImię)
If InStr(1, sImię(I), Text1) <> 0 Then 'Jeżeli takie imię występuje w tablicy to...
Label1.Caption = "Cześć, " & Text1 & " jesteś " & I & " osobą na mojej liście imion!"
Jest = True
Exit For
End If
If I = UBound(sImię) And Jest = False Then 'Jeżeli przeszukanie ostatniego elementu z tablicy nic nie dało to...
sImię(UBound(sImię)) = Text1 'Dodaj imię
Exit For
End If
Next
End If
End If
Ten kod chciałbym żeby. Jeśli użytkownik wpisze w Text1 jakieś imię - ale nie wiadomo jakie to jest imię to. W przypadku znalezienia tego imienia w tablicy imion program pokaże Cześć + imie, w przypadku nie znalezienia doda je do tablicy.
Ale coś nie chce działać.

03-11-2004 07:20
Pokaż profil gibcio  Wyślij email do gibcio        1654622
kicaj




Typ: neutral
Postów: 271
Zarejestrowany: Aug 2003

Dim sImię() As String

Private Sub Command1_Click()
Dim I As Integer
Dim sWrt As String

If Trim(Text1.Text) <> "" Then
Dim Jest As Boolean
For I = 0 To UBound(sImię)
  If InStr(1, sImię(I), Text1) <> 0 Then 'Jeżeli takie imię występuje w tablicy to...
  Label1.Caption = "Cześć, " & Text1 & " jesteś " & I & " osobą na mojej liście imion!"
  Jest = True
  Exit For
  End If
  If I = UBound(sImię) And Jest = False Then 'Jeżeli przeszukanie ostatniego elementu z tablicy nic nie dało to...
  sImię(UBound(sImię)) = Text1 'Dodaj imię
  ReDim Preserve sImię(UBound(sImię) + 1)
  Exit For
  End If
Next
End If

End Sub

Private Sub Form_Load()
ReDim sImię(0)
End Sub

03-11-2004 08:36
Pokaż profil kicaj  Wyślij email do kicaj        3914568
gibcio




Typ: neutral
Postów: 39
Zarejestrowany: Oct 2004

ta procedurka jest zła. Gdy włączam program to zaznacza na niebiesko linię:

ReDim sImię(0)

i wyświetla komunikat "Array alread dimensioned"
gdy powyższą funkcję zmieniłem na"

ReDim sImię(1 To 2) As String
dzieje się to samo.

03-11-2004 16:52
Pokaż profil gibcio  Wyślij email do gibcio        1654622
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004

To wszystko co napisał kicaj działa poprawnie lecz ja to nieco zmodyfikowałem
----------------------------------
Option Explicit
Dim sImię() As String

Private Sub Command1_Click()
Dim I As Integer
Dim sWrt As String
If Text1.Text <> "" Then
Dim Jest As Boolean
    For I = 0 To UBound(sImię)
      If sImię(I) = Text1 Then 'Jeżeli takie imię występuje w tablicy to...
            Label1.Caption = "Cześć, " & Text1 & " jesteś " & I & " osobą na mojej liście imion!"
            Jest = True
            Exit For
      Else
            Label1.Caption = Text1 & " został dodany na pozycję tablicy nr: " & I
      End If
     
      If I = UBound(sImię) And Jest = False Then 'Jeżeli przeszukanie ostatniego elementu z tablicy nic nie dało to...
        sImię(UBound(sImię)) = Text1 'Dodaj imię
        ReDim Preserve sImię(UBound(sImię) + 1)
        Exit For
      End If
     
    Next
Else
  Label1.Caption = "Wpisz coś do Text1"
End If
End Sub

Private Sub Form_Load()
ReDim sImię(0)
End Sub


_____________________________________________
Visual Basic.NET - Mercedes dla programistów

03-11-2004 17:52
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
mikmas
From Łódź Stadt




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

Ta funkcja była pisana przeze mnie. Nie sprawdzałem jej. ReDim Preserve chyba nie pomoże! Jakby to był nie tablicowany Variant, to może... Moja propozycja jest następująca: powiększ poprostu max. wielkość tablicy np. do 1000. Powinno pomóc!. Oczywiście mogę się mylić. Zaraz zobaczę jak to wygląda, trochę zmodyfikuję, żeby działało i wyślę na maila


_____________________________________________
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

03-11-2004 18:48
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004

Nie wiem czy tak funkcja była pisana przez Ciebie, natomiast widzę obok napisanej funkcji NICK: kicaj - no chyba że źle widzę - natomiast takie zwiększanie tablicy juz na starcie do 1000 i to w typie String nie jest chyba najlepszym pomysłem, gdyż zmienna tego typu przechowuje od 0 do 2 mld znaków typu Unicode (źródło MSDN)


_____________________________________________
Visual Basic.NET - Mercedes dla programistów

04-11-2004 08:33
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
mikmas
From Łódź Stadt




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

Zapewniam, że funkcja mojego autorstwa. Gdzie widzisz podpis Kicaja?


_____________________________________________
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

04-11-2004 16:51
Pokaż profil mikmas  Wyślij email do mikmas   Odwiedź stronę mikmas       3632553
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Ja tez widzę NICK: kicaj


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

05-11-2004 13:51
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
marcin_an
Forumowicz




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

Ja tez widzę nick Kicaj i na dodatek u mnie ta funkcja działa bez problemów, nie wywala błędu...

PiotrT: nie przechowuje, tylko MOŻE przechować - to dwie różne rzeczy. To moze być 1000 stringów, które mają.. po jednym znaku (2 bajty) = 2kB...

[Post edytowany dnia 05-11-2004 13:56 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

05-11-2004 13:55
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004

Oczywiście przejęzyczenie... może przechować - jednak u mnie to już zboczenie zakresy zmiennych podaję dla VB.NET
MSDN:

String(variable-length)
System.String (class)
Depends on implementing platform
0 to approximately 2 billion Unicode characters


_____________________________________________
Visual Basic.NET - Mercedes dla programistów

05-11-2004 16:13
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
marcin_an
Forumowicz




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

Dla VB6 są takie same.


_____________________________________________
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

05-11-2004 19:45
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
marcin_an
Forumowicz




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

Dla VB6 są takie same.


_____________________________________________
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

05-11-2004 19:45
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

Temat jest już właściwie zamknięty - wysłałem do Gibcia działającą funkcję.

PS. Zdziwiony, że wszyscy oprócz mnie widzą podpis Kicaja wcisnąłem Ctrl+F, wpisałem Kicaj i... cóż może znalazłem wspólną cechę mnie z kompem: ślepota. Nadal nie widzę tego podpisu . Cóż! Mówię, że funkcja jest moja! (no! moja! ). Choć... nie robi mi to różnicy


_____________________________________________
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

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




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

Żeby zakończyć wątek daję screena, który przedstawia podpis 'kicaj'


A tutaj zaznaczę ci go na niebiesko:
kicaj

.
Koniec.


_____________________________________________
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

05-11-2004 22:33
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
kicaj




Typ: neutral
Postów: 271
Zarejestrowany: Aug 2003

Fajno tak jak ktoś się kłóci o mnie, ale tak naprawdę ten kod jest gibcia a ja dodałem tam tylko parę linijek

[Post edytowany dnia 06-11-2004 17:14 przez kicaj]

05-11-2004 23:39
Pokaż profil kicaj  Wyślij email do kicaj        3914568
marcin_an
Forumowicz




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

Najlepiej wogóle to skończmy, bo to nie ma sensu, nie zapychajmy forum .


_____________________________________________
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

06-11-2004 12:37
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
Wszystkich odpowiedzi: 15 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1