Newsgroup: it.comp.lang.c++
Titolo: Che usare? STL, Standard C++ Library, windows, vcl o che altro?!?

Programmo in C++ da tempo, e finché si tratta di giocherellare con
interi, float, double, ma anche con componenti, classi, ecc. non c'č
problema...
quando, perň, mi trovo a dover utilizzare, per dire, le stringhe, ogni
volta non so mai che strada scegliere... esistono le stringhe "sz", su
cui lavora il sistema operativo (e quindi le eventuali funzioni del
sistema operativo), poi ci sono le AnsiString della VCL di Borland,
molto piů maneggevoli, ma naturalmente non portabili (ma ovviamente le
funzioni e le classi di VCL usano le AnsiString), poi c'č string
definito dalle Standard C++ Library (a cui perň mancano funzioni come
trim)
altro esempio č una lista (o un vettore) ad esempio di stringhe... uso
TStringList di VCL oppure std::vector<string> ?? o qualche altra cosa?
voi come vi regolate? che cavolo usate per le stringhe?
]\/[ad]\/[age
"Un Maestro nell'arte della vita, non fa nessuna precisa distinzione tra lavoro
e gioco, fatica e riposo, mente e corpo, educazione e ricreazione. 
Insegue semplicemente la sua visione di Eccellenza attraverso qualunque cosa sta facendo e lascia agli altri decidere se sta lavorando o giocando. A lui sembra sempre che sta facendo entrambe le cose." - Anonimo.
.-~-.-~-. 
www.madmagelab.cjb.net
 .-~-.-~-.

 voi come vi regolate? che cavolo usate per le stringhe?
Io sono vincolato dalla portabilita' sotto ambienti differenti, e
scelgo sempre per la portabilita': std::string e containers della
standard library.  Se ti spaventa il fatto che non esista un metodo
trim, non metterti a piangere; in fondo e' abbastanza facile
scriverselo...  in fin dei conti non c'e' nemmeno in <cstring>...  e
non mi suona antiestetico scrivere una procedura fatta come
string trim(const string & in) {
  // Definizione di "whitespace" sotto POSIX
  static const char spaces[] = " \t\n\r\f\t\v";
  string::size_type start = in.find_first_not_of(spaces);
  // Tutti spazi ?
  if (start == string::npos) return "";
  string::size_type length = in.find_last_not_of(spaces) - start + 1;
  return string(in, start, length);
}
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

}
il problema non era tanto nella non esistenza del metodo trim (cmq
grazie mi hai risparmiato 2,28 nanosecondi di riflessione per scrivere
la procedura... beh, dŕi, scherzo, in effetti mi sei stato utile
perché la libreria standard non la conosco ancora benissimo!)
il problema era che a me sembra che ognuno si inventi uno standard e
crei le sue librerie (vedi MFC o VCL) basate su quello standard... il
che non č il massimo della vita!
vedi, ad esempio, altra domanda: che usate per i file? fopen, fread,
ecc.? oppure le funzioni windows OpenFile, ReadFile, ecc.?
ma non ce se po' mette tutti d'accordo?!?!? e magari rendere alcune
funzioni estendibili per accogliere le potenzialitŕ del sistema
operativo (ma fare in modo che siano le stesse funzioni)???


ecc.? oppure le funzioni windows OpenFile, ReadFile, ecc.?
fopen... se scrivo in c, gli stream del C++ se scrivo in c++,
OpenFile... se devo utilizzare qualche funzione offerta da win32.
-- 
Marco Barisione (ICQ 84277092)
Su it.news.gruppi si sta discutendo della creazione di it.comp.lang
dove si parlerà dei linguaggi senza un proprio newsgroup e dei
confronti fra i diversi linguaggi.
Se sei interessato unisciti alla discussione.

 voi come vi regolate? che cavolo usate per le stringhe?
Secondo me dipende dalle caratteristiche della tua applicazione, ovvero
se oltre all'interazione con librerie/applicazioni esterne (GUI, DB,
ecc.) esiste anche un corpo di funzionalita' "interne", e da come questi
elementi pesano tra loro.
La parte interna e' quella dove dovresti preferire l'uso della libreria
standard, mentre negli altri elementi sei vincolato alle tecnologie che
usi. Scrivere delle funzioni di conversione pero' costa poco, ed e' la
strada che in genere uso.
Ciao,
Nicola

 operativo (ma fare in modo che siano le stesse funzioni)???
Se metti d'accordo Linux, Windows, Posix (che non è un OS) e altri due o
tre sistemi in modo che le loro API coincidano, ti prometto che poi il
comitato ISO prenderà in seria considerazione la cosa.
Pecato che Posix sia proprio il risultato di un tentetivo di "mettere
d'accordo". Quindi se proprio vuoi, resta in ambito Posix e hai buone
probabilità di essere portabile.
--
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556

operativo (ma fare in modo che siano le stesse funzioni)???
Esiste POSIX per questo, o no?
Il Ghenio
-----
These are my parting words to you:
those who give up are doomed!
-----