Obsługa wielu języków - TStringList?

dział ogólny

Re: Obsługa wielu języków - TStringList?

Nowy postprzez Cyfrowy Baron » wtorek, 29 lipca 2008, 19:30

Nie chce mi się już nad tym rozwodzić, niezależnie od tego czy użyjesz TStringList, czy STL efekt końcowy będzie taki sam. Niewątpliwie Twój przykład jest bliższy tablicom asocjacyjnym PHP niż mój. Wydaje mi się, że w programowaniu nie chodzi o przenoszenie kodu z jednego języka na drugi, lecz o tworzenie jak najlepszych i najprostszych rozwiązań.

To z wykorzystaniem STL:

Kod: Zaznacz cały
map<String,String>::iterator it;

myMap["klucz1"] = "Wartość 1";
myMap["klucz2"] = "Wartość 2";
myMap["klucz3"] = "Wartość 3";

for ( it=myMap.begin() ; it != myMap.end(); it++)
{
   Memo1->Lines->Add(myMap[(*it).first]);
   Memo1->Lines->Add((*it).second);
}


można równie dobrze napisać z wykorzystaniem TStringList:

Kod: Zaznacz cały
TStrings *myMap = new TStringList; // tu nie ma błędu

myMap->Add("klucz1=Wartość 1");
myMap->Add("klucz2=Wartość 2");
myMap->Add("klucz3=Wartość 3");

for ( int i = 0; i < myMap->Count; i++)
{
   Memo1->Lines->Add(myMap->Names[i]);
   Memo1->Lines->Add(myMap->Values[myMap->Names[i]]);
}


Efekt końcowy w obydwu przypadkach będzie identyczny.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4730
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Obsługa wielu języków - TStringList?

Nowy postprzez Darek_C++ » wtorek, 29 lipca 2008, 19:41

No i o to mi chodziło ;)
PozdrawiaM
Avatar użytkownika
Darek_C++
Elektrowied
Elektrowied
 
Posty: 454
Dołączył(a): piątek, 25 lipca 2008, 14:33
Podziękował : 66
Otrzymał podziękowań: 4
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo Explorer C++
Gadu Gadu: 0
    NieznanyNieznana

Re: Obsługa wielu języków - TStringList?

Nowy postprzez Koziol » wtorek, 29 lipca 2008, 22:35

Też się zgadzam, że to dyskusja do niczego więcej nie doprowadzi. Ja wykorzystam TStringList bo wydaje się nieco przyjaźniejszy niż to drugie rozwiązanie.

Ale można nie co bardziej rozwinąć temt, to znaczy czy da się uzyskać tablice wielowymiarowe np.
Kod: Zaznacz cały
$nazwa_zmiennej['index1']['indes2']="wartsc";

// wole użyć php bo na tym jeszcze się jako tako znam.
Avatar użytkownika
Koziol
Intelektryk
Intelektryk
 
Posty: 144
Dołączył(a): niedziela, 13 lipca 2008, 17:36
Podziękował : 8
Otrzymał podziękowań: 2
System operacyjny: Windows XP Pro SP2
Kompilator: C++ Builder
    NieznanyNieznana

Re: Obsługa wielu języków - TStringList?

Nowy postprzez wargo » piątek, 1 sierpnia 2008, 15:11

Szukając swojego problemu natrafiłem na to:
http://4programmers.net/C/Tablice (czytaj: dwuwymiarowa).
Avatar użytkownika
wargo
Mądrosław
Mądrosław
 
Posty: 389
Dołączył(a): niedziela, 13 lipca 2008, 16:44
Podziękował : 12
Otrzymał podziękowań: 3
System operacyjny: Windows 7
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 6259515
    NieznanyNieznana

Re: Obsługa wielu języków - TStringList?

Nowy postprzez Koziol » piątek, 1 sierpnia 2008, 15:20

4programmers przeczytałem od deski do deski jak miałem ANSI C (jakos udało się zaliczyc ;) ) ale BCB6 się "nieco" różni od ANSI C ;P
Avatar użytkownika
Koziol
Intelektryk
Intelektryk
 
Posty: 144
Dołączył(a): niedziela, 13 lipca 2008, 17:36
Podziękował : 8
Otrzymał podziękowań: 2
System operacyjny: Windows XP Pro SP2
Kompilator: C++ Builder
    NieznanyNieznana

Re: Obsługa wielu języków - TStringList?

Nowy postprzez wargo » piątek, 1 sierpnia 2008, 15:29

To znaczy że to nic nie pomoże? w czym problem?
Avatar użytkownika
wargo
Mądrosław
Mądrosław
 
Posty: 389
Dołączył(a): niedziela, 13 lipca 2008, 16:44
Podziękował : 12
Otrzymał podziękowań: 3
System operacyjny: Windows 7
Kompilator: C++ Builder 6 Personal
Gadu Gadu: 6259515
    NieznanyNieznana

Re: Obsługa wielu języków - TStringList?

Nowy postprzez Cyfrowy Baron » piątek, 1 sierpnia 2008, 15:38

Możesz tworzyć tablice wielowymiarowe, ale nie asocjacyjne, poza tym wypełnianie takich tablic różni się od dwuwymiarowych.

Taki zapis jest niedopuszczalny:
Kod: Zaznacz cały
AnsiString tablica[][] = {"tekst1", "teks2", "tekst3"}; // źle

AnsiString tablica[3][3] = {"tekst1", "tekst2", "tekst3" /* i tak dalej do 9 elementów */}; // źle


Można co najwyżej tak:
Kod: Zaznacz cały
AnsiString tablica[3][3];

for (int i = 0; i < 3; i++)
for(int j = 0; j < 3; j++)
  tablica[i][j] = "tekst " + IntToStr(i) + " " + IntToStr(j); // to tylko przykład wypełniania tablicy
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4730
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 444
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Obsługa wielu języków - TStringList?

Nowy postprzez Koziol » piątek, 1 sierpnia 2008, 21:09

Napisałem rozwinąć temat czyli o tablice w stylu
Kod: Zaznacz cały
$zmienna["index1"]["index2"]


indexy "literowe", słowa nie wiem jak inaczej to określić a nie liczbowe :P
Avatar użytkownika
Koziol
Intelektryk
Intelektryk
 
Posty: 144
Dołączył(a): niedziela, 13 lipca 2008, 17:36
Podziękował : 8
Otrzymał podziękowań: 2
System operacyjny: Windows XP Pro SP2
Kompilator: C++ Builder
    NieznanyNieznana

Poprzednia strona

  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 4 gości

cron