Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-02-2011
lucila89 lucila89 is offline
Registrado
NULL
 
Registrado: feb 2011
Posts: 4
Poder: 0
lucila89 Va por buen camino
Utilizacion archivo con api win32

Quisiera saber como se utilizan las llamadas siguientes:

CreateFile
DeleteFile
CloseHandle
ReadFile
WriteFile

encontré un par de ejemplos en esta pagina pero quisiera saber si alguien me puede ayudar. el codigo para crear archivos, ¿seria el siguiente?

Código Delphi [-]
program hello;

{$APPTYPE CONSOLE}

uses windows;

var
F:integer;


begin

F:=CreateFile('D:\archivo.txt',generic_read, 0, nil, create_always, file_attribute_normal,0);

closehandle(F);


end.

El ReadFile y los demás ¿como serian ?

desde ya muchas gracias
Responder Con Cita
  #2  
Antiguo 03-02-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola lucila89.

Te hice un ejemplo básico donde se utilizan las funciones que solicitas:
Código Delphi [-]
...
const
  FILE_NAME = 'C:\PRUEBA.TXT';
var
  Hnd: Integer;
  stToRead, stToWrite: string;
  NR,NW: LongWord;
begin
  Hnd:= CreateFile(FILE_NAME, GENERIC_WRITE, FILE_SHARE_DELETE,
                    nil, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0);
  if Hnd = INVALID_HANDLE_VALUE then
   raise Exception.Create('Error creando archivo')
  else
  begin
    Readfile(Hnd, stToRead, Length(stToRead), NR, nil); // leer
    stToWrite:= 'PRUEBA_DE_ESCRITURA_CON_WINDOWS_API';
    WriteFile(Hnd, stToWrite[1], Length(stToWrite), NW, nil);
    CloseHandle(Hnd);
    if MessageBox(Handle,'¿ BORRA EL ARCHIVO ?','',MB_ICONQUESTION + MB_YESNO) = IDYES then
      Windows.DeleteFile(FILE_NAME)
  end;
end;
Es sólo un código trivial que crea/abre, lee, escribe, cierra y borra. Si querés más detalles sobre el uso de las funciones,
te dejo los enlaces con la información: CreateFile Function , CloseHandle Function , DeleteFile Function , ReadFile Function , WriteFile Function

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 03-02-2011 a las 07:11:14.
Responder Con Cita
  #3  
Antiguo 03-02-2011
lucila89 lucila89 is offline
Registrado
NULL
 
Registrado: feb 2011
Posts: 4
Poder: 0
lucila89 Va por buen camino
muchas gracias ecfisa me sirvio mucho la información y el ejemplo , ahora mismo estoy leyendo un poquito mas en los enlaces que me pasaste
Responder Con Cita
  #4  
Antiguo 03-02-2011
lucila89 lucila89 is offline
Registrado
NULL
 
Registrado: feb 2011
Posts: 4
Poder: 0
lucila89 Va por buen camino
tengo un problema para leer el archivo o no lo entendí bien, osea en el readFile del ejemplo usaste un string como salida, en el link vi que la salida seria el buffer.
por ejemplo este código no me anda.

Código Delphi [-]
program Mayuscula;
uses windows,sysutils;
var
archivo,archivo2: LPCTSTR;
entrada, salida: Integer; 
stRead, stWrite:string;
NR, NW: LongWord;
begin
archivo:= 'D:\texto.txt';
archivo2:= 'D:\texto2.txt';
entrada:= CreateFile(archivo, GENERIC_READ + GENERIC_WRITE, FILE_SHARE_WRITE, NIL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
salida:= CreateFile(archivo2, GENERIC_READ + GENERIC_WRITE, FILE_SHARE_WRITE, NIL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
ReadFile(entrada, stRead, length(stRead), NR, NIL);
  stWrite:= uPcase(stRead);
  WriteFile(salida, stWrite[1], Length(stWrite), NW, NIL);
CloseHandle(entrada);
CloseHandle(salida);
end.

que esta mal en el codigo?

Última edición por lucila89 fecha: 03-02-2011 a las 14:30:20.
Responder Con Cita
  #5  
Antiguo 03-02-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola lucila89.

Probá de esta forma:
Código Delphi [-]
...
const
  FILE_NAME = 'C:\PRUEBA.TXT';
var
  Hnd: Integer;
  stToRead: shortString;
  NR: LongWord;
begin
  Hnd:= CreateFile(FILE_NAME, GENERIC_READ + GENERIC_WRITE,
                   FILE_SHARE_READ + FILE_SHARE_WRITE, 0,
                   OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  Readfile(Hnd, stToRead, SizeOf(stToRead), NR, nil);
  CloseHandle(Hnd);
  ShowMessage(stToRead);
end;

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 03-02-2011
lucila89 lucila89 is offline
Registrado
NULL
 
Registrado: feb 2011
Posts: 4
Poder: 0
lucila89 Va por buen camino
muchas gracias cariño, anduvo de diez y pude terminar mi programa.
Responder Con Cita
  #7  
Antiguo 03-02-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo lucila89.

Me alegra haberte servido de ayuda.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
re utilizacion de Fomr vroa74 API de Windows 7 04-10-2007 21:18:24
Utilización del iif efelix MS SQL Server 11 22-01-2007 19:13:42
utilización de trigger jsanchez Firebird e Interbase 1 26-12-2005 15:32:01
Utilización de InoSetup Tonio Varios 7 21-11-2004 09:48:39
Utilización webs jymy788 Varios 4 15-11-2004 17:55:16


La franja horaria es GMT +2. Ahora son las 23:07:36.


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
Copyright 1996-2007 Club Delphi