 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
beta Lt JG

Registrado: 01 Abr 2006Mensajes: 74
|
Publicado: Sab 13 May, 2006 7:26 am Asunto: TMemoryStream versus documento texto |
|
|
Yo imaginaba que usar Write sobre TMemoryStream, era como escribir en un documento texto, en donde se añadía el texto sucesivamente, intercalando los tabuladores y saltos de línea en los lugares donde uno quería. Pero no me está resultando así.
Repasando una pregunta de 2002 existente en el foro, he hecho un programa que funciona perfectamente si hago lo siguiente:
TMemoryStream * memoria = new TMemoryStream();
TTreeView * TreeView1;
memoria->LoadFromFile("INDICES.DAT");
memoria->Position = 0;
TreeView1->LoadFromStream(memoria);
En "INDICES.DAT", tengo escrito un árbol donde cada nodo es una línea y su jerarquía me la da el número de tabs ('\t') que preceden a cada línea.
Quiero sustituir:
memoria->LoadFromFile("INDICES.DAT");
por una escritura directa en el TMemoryStream, que mantenga la estructura de un árbol (tabs, líneas de texto, y saltos de línea \n).
Como no mr prermite emplear WriteAnsiString, he usado:
memoria->Write("Linea1",sizeof(Linea1));
memoria->Write("Linea2",sizeof(Linea2));
memoria->Write("Linea3",sizeof(Linea3); etc.
Pero el TreeView1 sólo me muestra la primera linea.
También he intentado:
memoria->Write("Linea1\n",sizeof(Linea1)+1);
memoria->Write("\tLinea2\n",sizeof(Linea1)+2);
memoria->Write("\t\tLinea3\n",sizeof(Linea1)+3);
Con el mismo mal resultado, TreeView1 sólo me muestra la primera linea.
¿Alguien tiene una solución?. Gracias |
|
| Volver arriba |
|
 |
beta Lt JG

Registrado: 01 Abr 2006Mensajes: 74
|
Publicado: Sab 13 May, 2006 8:42 am Asunto: Solucion |
|
|
Dado que he encontrado la solución indico cual es por si le interesa a alguien.
Es suficiente hacer:
memoria->Write("Linea1\n",sizeof(Linea1));
o bien
memoria->Write("Linea1",sizeof(Linea1)-1);
memoria->Write("\n",1);
Por lo visto Write cuando escribe una Linea añade algo al final que impidedia que luego se leyese el salto de línea.
De todas formas gracias a los que he molestado con la pregunta
beta |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|