Strona 2 z 2

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

Nowy postNapisane: wtorek, 29 lipca 2008, 19:30
przez Cyfrowy Baron
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.

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

Nowy postNapisane: wtorek, 29 lipca 2008, 19:41
przez Darek_C++
No i o to mi chodziło ;)
PozdrawiaM

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

Nowy postNapisane: wtorek, 29 lipca 2008, 22:35
przez Koziol
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.

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

Nowy postNapisane: piątek, 1 sierpnia 2008, 15:11
przez wargo
Szukając swojego problemu natrafiłem na to:
http://4programmers.net/C/Tablice (czytaj: dwuwymiarowa).

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

Nowy postNapisane: piątek, 1 sierpnia 2008, 15:20
przez Koziol
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

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

Nowy postNapisane: piątek, 1 sierpnia 2008, 15:29
przez wargo
To znaczy że to nic nie pomoże? w czym problem?

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

Nowy postNapisane: piątek, 1 sierpnia 2008, 15:38
przez Cyfrowy Baron
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

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

Nowy postNapisane: piątek, 1 sierpnia 2008, 21:09
przez Koziol
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