Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como Crear archivos (https://www.clubdelphi.com/foros/showthread.php?t=39919)

Tolón 01-02-2007 22:28:58

Como Crear archivos
 
Hola a todos,

Alguien sabe como crear archivos desde mi aplicación???
archivos que mi alicación pueda leer, darles nombre etc,
asi como word crea los .doc etc etc.

que tengo que hacer??

Gracias

marcoszorrilla 01-02-2007 22:49:39

Un sencillo ejemplo:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
FConcurso:TextFile;
CrLf:String;
sTexto:String;
i:Integer;
begin
CrLf=Chr(13)+Chr(10);
cCamino:='c:\Concurso.txt';
AssignFile(FConcurso, cCamino);
Rewrite(FConcurso);
sTexto:='Ejemplo de linea ';

  For i:=1 to 10 do
  begin
  Write(FConcurso, sTexto+IntToStr(i)+CrLf);
  end;


CloseFile(FConcurso);

end;


Un Saludo.

Caral 01-02-2007 23:16:08

Otro ejemplito::D
Pones en un combobox la direccion donde se va a archivar el texto o textos, un combobox, por que puedes cambiar de ubicacion y nombre cuando quieras, tambien se puede hacer con un edit.
asi:
Código Delphi [-]
unit UNotas;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TFNotas = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    Button3: TButton;
    Edit1: TEdit;
    ComboBox1: TComboBox;
    procedure Button3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FNotas: TFNotas;
  Ruta: String;
implementation

{$R *.dfm}

procedure TFNotas.Button3Click(Sender: TObject);
begin
  Close;
end;

procedure TFNotas.Button1Click(Sender: TObject);
begin
// con esto se pone la ruta directo por codigo
//  Ruta:= 'C:\Notas.bat';

// con esto otro pone la ruta el usuario en el edit
//  Ruta:= Edit1.Text;

// con esto otro vera la ruta el usuario en el combobox en items
  Ruta:= ComboBox1.Text;
  Memo1.Lines.SaveToFile(Ruta);
  Memo1.Lines.Clear;
end;

procedure TFNotas.FormCreate(Sender: TObject);
begin
   Ruta:= ComboBox1.Text;
end;

procedure TFNotas.ComboBox1Change(Sender: TObject);
begin
    Ruta:= ComboBox1.Text;
  Memo1.Lines.LoadFromFile(Ruta);
end;

end.
Bueno esto lo aprendi de Bicho.:D
Saludos

Bicho 02-02-2007 00:18:13

Cita:

Empezado por Tolón
asi como word crea los .doc etc etc.

Hombre del mismo modo que han citado los amigos marcos y caral (agradezco que se haya acordado de mí), puedes crear un fichero .doc, o .html, etc.

Código Delphi [-]
  Memo1.Lines.SaveToFile('c:\Prueba.doc');
  Memo1.Lines.SaveToFile('c:\Prueba.html');

Y después abrirlos:

Código Delphi [-]
  Memo1.Lines.LoadFromFile('c:\Prueba.doc');
  Memo1.Lines.LoadFromFile('c:\Prueba.html');

A parte de un memo, puedes usar cualquier objeto del tipo TStrings ya que implementa los mismos métodos LoadFromFile y SaveToFile, como por ejemplo un RichEdit que permite incorporar texto enriquecido.
Con éste podrías abrir un documento .rtf o .doc por poner unos ejemplos, manteniendo el mismo formato como si lo hubieras creado con el Word.

Pero un fichero html, no es lo mismo. Lo puedes crear, pero no visualizar con el mismo componente antes citado.
Creas el cuerpo (codigo html), que no es más que texto plano, que las etiquetas las interpreta el navegador. Para visualizar un html deberías usar un componente WebBroser.

En fin, que hay muchas posibilidades, dependiendo del tipo de fichero que quieras crear y como lo quieras tratar. Unos será más sencillo otros, más complejo. ;)

Un saludo

Pandre 05-02-2007 06:16:43

Y agregando un poco más, si lo que quieres es guardar información binaria, puede usar el TFileStream o TMemoryStram...


Código Delphi [-]
// ESCRITURA

procedure TForm1.Button2Click(Sender: TObject);
var
  FSArchivo: TMemoryStream;
  Numero: integer;
  Caracter: char;
begin

  Numero := 1234;
  Caracter := 'a';

  try
    FSArchivo := TMemoryStream.Create();
    FSArchivo.Position := 0;

    FSArchivo.Write(Numero, sizeof(integer));
    FSArchivo.Write(Caracter, sizeof(char));

    FSArchivo.SaveToFile('c:\archivo.ext');

  finally
    FSArchivo.Free;
  end;
end;

// LECTURA

procedure TForm1.Button3Click(Sender: TObject);
var
  FSArchivo: TMemoryStream;
  Numero: integer;
  Caracter: char;
begin

  try
    FSArchivo := TMemoryStream.Create();
    FSArchivo.LoadFromFile('c:\archivo.ext');
    FSArchivo.Position := 0;

    FSArchivo.Read(Numero, sizeof(integer));
    FSArchivo.Read(Caracter, sizeof(char));

  finally
    FSArchivo.Free;
  end;

  ShowMessage(inttostr(Numero));
  ShowMessage(Caracter);

end;


Saludos...

Tolón 07-02-2007 17:42:20

Muchas Gracias a todos por su ayuda, ya les tendré mas noticias de mi aplicación sobre este tema mas adelante ... muchas gracias a todos :)

ixMike 07-02-2007 20:38:31

Hey!!!!!!!!!!!!!

Os habéis dejado algo: crear tu propio tipo de archivo.

Funciona a modo de registros.

Primero creas tu tipo de dato (si es necesario) o utilizar uno ya existente (según necesites). Por ejemplo:

Código Delphi [-]
type
  TTipoDato = record
    Nombre: string[20]; //en tipo cadena siempre tienes que indicar el tamaño
    Apellidos: string[50];
    Edad: byte;
    Altura: double;
  end;

Puedes usar cualquier tipo, excepto objetos.

Después tienes que declarar una variable para manejar el dato y otra para el archivo:

Código Delphi [-]
var
  Archivo: File of TTipoDato;
  Datos: TTipoDato;

Ya por último tienes una serie de procedimientos para manejar los archivos. Para conocerlos bien te recomiendo que mires la ayuda de Delphi:

AssignFile: Asigna un archivo a una variable.
Reset: Abre el archivo y te posiciona en el último registro
Rewrite: Abre el archivo y te posiciona en el primer registro
Seek: Te posiciona en el registro n del archivo abierto.
EOF: devuelve true si estás al final del archivo.
CloseFile: cierra el archivo
Read: asigna a una variable el valor de un registro
Write: escribe en un registro en valor de una variable
FileSize: devuelve el tamaño de archivo (en cantidad de registros).


Espero que te sea de ayuda

Salu2 a todo el club ;)


La franja horaria es GMT +2. Ahora son las 13:16:19.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi