Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-06-2014
ebeltete ebeltete is offline
Miembro
 
Registrado: may 2003
Posts: 236
Poder: 21
ebeltete Va por buen camino
writefile y FileWrite en delphi xe6

Amigos del foro, estoy probando Delphi XE6 y trabajando con una aplicacion para leer el idtag de los archivos de mp3. En DElhi5 y Windows XP me funcionaba a la perfeccion, pero al querer hacerlo en Delphi XE6 y Windows 7, no logro hacerlo funcionar.
Con el siguiente codigo tendria que poder grabar los datos en el archivo, pero no logro hacerlo.
Código Delphi [-]
  
  FTagRecord: ID3Struct;

const
  ID3Magic = 'TAG';

 ID3Struct = packed record
    Magic:   Array [0..2 ] of ansiChar;
    Title:   Array [0..29] of ansiChar;
    Artist:  Array [0..29] of ansiChar;
    Album:   Array [0..29] of ansiChar;
    Year:    Array [0..3] of ansiChar;
    Comment: Array [0..29] of ansiChar;
    Genre:   ID3Genre;
  end;



  FillChar(FTagRecord, SizeOf(FTagRecord), ' ');
    with FTagRecord do
    begin
      StrMove(Magic, ID3Magic, SizeOf(Magic));

      s := PadSpace(FTitle, SizeOf(Title));
      StrMove(Title, pansiChar(s), Length(s));

      s := PadSpace(FArtist, SizeOf(Artist));
      StrMove(Artist, pansiChar(s), Length(s));

      s := PadSpace(FAlbum, SizeOf(Album));
      StrMove(Album, pansiChar(s), Length(s));

      s := PadSpace(FYear, SizeOf(Year));
      StrMove(Year, pansiChar(s), Length(s));

      s := PadSpace(FComment, SizeOf(Comment));
      StrMove(Comment, pansiChar(s), Length(s));

      Genre := ID3NameToGenre(FGenre);

    end;
 hFile := createfile(pchar(FFileName), GENERIC_WRITE or GENERIC_READ , FILE_SHARE_WRITE+FILE_SHARE_READ,nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL   , 0);
            SetFilePointer(hFile,GETFILESIZE(hFile,nil)-SizeOf(FTagRecord), NIL, FILE_BEGIN);

        if   sysutils.FileWrite(hFile, FTagRecord, SizeOf(FTagRecord))=-1 then
            showmessage('Atención! No se pudo grabar la información.');
         Closehandle(hFile);
Responder Con Cita
  #2  
Antiguo 10-07-2014
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.195
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
¿Y qué error te da?

Piosiblemente se trata del unicode. Prueba esto:
Código Delphi [-]
 hFile := CreateFile(PWCHAR(FFileName), .......)

O esto:
Código Delphi [-]
 
 hFile := CreateFileA(PCHAR(FFileName), ...


Saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
FileWrite Delphi XE blaiselaborde Varios 2 29-03-2011 20:54:39
Uso del SysUtils.FileWrite. ¿Cómo? metalfox6383 Varios 6 15-10-2010 18:40:26
Error al intentar escribir en un archivos con BlockWrite o FileWrite Ictiandro Varios 4 18-11-2006 02:34:11
Problemas con WriteFile para trabajar con la RS232. Killo API de Windows 2 21-08-2006 12:13:41


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


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