![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
muchas gracias lepe, pero (parezco el hombre de los peros) me temo que en turbo pascal no existe TStringList (o al menos yo no lo conozco). Lo único que se me ocurre es antes de escribir leer todo, añadir en el sitio adecuado la ristra que quiero y volver a escribir todo. Pero no me convence en absoluto.
Un saludo Jon |
|
#2
|
|||
|
|||
|
porque no pruebas a bajar el FreePascal? si mal no recuerdo ya tiene la clase de TStrings o TStringList,
otra opcion seria que hicieras el guardado de registros a mano, pero guardandolos como texto delimitado por comas, y donde cada registro es un renglon por ejemplo "reg1campo1","reg1campo2","reg1Campo3","etc" "reg2campo1","reg2campo2","etc","etc" lo que si, es que es mas chamba, sin embargo, no dudo que haya por ahi una unidad ya hecha para leer y guardar datos en este formato... |
|
#3
|
|||
|
|||
|
gracis luisgutierrezb.
El free pascal ya lo tengo bajado, pero el problema es que el programilla que estoy haciendo yo lo tengo que importar a un proyecto bastante grande que está hecho en turbo pascal 7.0. Este proyecto he intentado pasarlo a free pascal, pero es más trabajo que matar una burra a pellizcos. por eso desistí. Lo de los campos separados con comas tampoco me sirve, ya que tengo que dejar un fichero solo con los datos que yo le paso, pero sin comas ni nada. Si el registro es Código:
tRegistro = record
nombre : string[15];
apellido1 : string[30];
telefono : string[9];
end;
Código:
nnnnnnnnnnnnnnnaaaaaaaaaaaaaaaaaaaaaaaaaaattttttttt Muchas gracias a los que estáis mostrando tanto interés. Un saludo Jon |
|
#4
|
||||
|
||||
|
Pues se acabó lo que se daba, esto tiene que funcionar en Turbo pascal, ya que usa las funcionies de bajo nivel del sistema operativo.
Edito: Las funciones las pillo de SysUtils, pero estarán en otra unidad de Turbo Pascal. THandle es un Entero largo. Espero que sea viable .SAludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 08-06-2006 a las 11:39:15. |
|
#5
|
|||
|
|||
|
muchas gracias lepe, pero.... me pasa solo a mi o en el archivo que crea escribe
Código:
texto 18@ texto 28@ texto 38@ Precisamente son los "cuadraditos", las arrobas y demás signos los que quiero evitar. No sé, estoy liado. Un saludo y muchas grcias Jon |
|
#6
|
|||
|
|||
|
Hola Jonmendi,
No sé si me he perdido un poco con el tema, pero creo que lo estais complicando demasiado. Lo que tu necesitas es un fichero de texto, no de un tipo concreto, de esa forma te pondrá los datos que necesitas uno tras otro, sin separadores de campo. Únicamente tendrá el caracter de fin de registro, lo cual no te dará ningún tipo de problema con la otra aplicación que debe leer ese fichero. Con lo que sí tienes que tener cuidado es con completar el tamaño de los campos, ya que al no ir separados por nada tienen que tener su longitud exacta. Me explico con un ejemplo hecho de cabeza: Código:
var MiNombre, MiApellido, MiTelefono, LoQueGrabo, Espacios : String;
FDisco : Text;
begin
// Inicializa la variable Espacios con 50 de caracteres en blanco
Espacios:=StringOfChar(' ', 50);
// en Pascal estándar sería algo así:
// Espacios:='';
// for i:=1 to 50 do Espacios:=Espacios+' ';
// asignar el fichero de texto y crearlo nuevo
AssignFile(FDisco,'TuFichero.txt'); // no olvides ponerle la ruta
{$I-} Rewrite(FDisco); {$I+} // lo abro borrando todo lo que tiene
if IOResult<>0 then // esto controlaba si había algún error
begin
ShowMessage('No encuentro el fichero');
Exit;
end;
// haz el bucle para ir encontrando los datos, y dentro de él grabas el fichero de texto
// MiNombre:=......
// MiApellido:=......
// MiTelefono:=.....
// completo la línea de texto a grabar uniendo los campos
LoQueGrabo:=MiNombre+Copy(Espacios,1,15-Length(MiNombre))
+MiApellido+Copy(Espacios,1,30-Length(MiApellido))
+MiTelefono+Copy(Espacios,1,9-Length(MiTelefono));
Writeln(FDisco,LoQueGrabo);
// fin del bucle
// cierra el fichero generado
CloseFile(FDisco);
Saludos
__________________
Rafita. |
|
#7
|
|||
|
|||
|
muchas gracias rafita!
si yo tb opino que me estoy liando, pero.... que no encuentro solución! El código que me envías lo tengo probado, pero hay un problemilla: cuando abres un fichero de texto con reset(F), no puedes escribir en el mismo, solo leer. Si lo abro con rewrite(F) me borra todo lo que haya, cosa que tampoco me interesa (por distintos motivos de permisos etc etc...), y el append no me sirve porque yo quiero modificar una línea en concreto. Por eso creo que no puedo usar un archivo de texto. En basic se que había un put y get que hacian lo que yo quiero, pero en turbo pascal .... pues que no me sale! Muchas gracias a todos. Y ya es jueves, así que animo. Jon |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Ayudaaaa!!! Tabla ASCII: El carácter Ñ vs. carácter ¥ | Berto2003 | Varios | 5 | 26-07-2005 15:37:48 |
| mainmenu y barritas de separación | unreal4u | Varios | 2 | 22-04-2005 21:19:46 |
| Caracter \r\n | FRANKER | Varios | 3 | 03-06-2004 10:02:43 |
| busqueda caracter a caracter | Irina | SQL | 3 | 20-05-2003 13:12:53 |
| sql a file | jsanchez | SQL | 2 | 13-05-2003 21:34:03 |
|