Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problemas al Copiar Archivos con el caracter 240 (https://www.clubdelphi.com/foros/showthread.php?t=31849)

AGAG4 19-05-2006 17:11:38

Problemas al Copiar Archivos con el caracter 240
 
Buen día, tengo un procedimiento para copiar archivos usando el CopyFile, pero en ciertos archivos no funciona como es en caso de aquellos que cuentan con el caracter 240 que a simple vista aparece un GUION, pero en delphi al hacer esto no me funciona:
Código Delphi [-]
//Usando el CHAR
CopyFile(PChar('c:\origen\'+char(240)+copy(searchResult.Name,2,length(searchResult.Name)-1)),PChar('c:\destino\Destino.DBF'),false);
 
//ó bien de esta forma tampoco funciona usando CHR
CopyFile(PChar('c:\origen\'+chr(240)+copy(searchResult.Name,2,length(searchResult.Name)-1)),PChar('c:\destino\Destino.DBF'),false);
//Los Archivos que quiero copiar tienen los siguientes nombres
{
-­03N‗O5K.01A
­-03N‗NR6.08A
­-03N‗Q3G.07A
­-03N‗WFF.07A
­-03N‗WGP.07A
­-03N‗WHQ.07A
­-03N‗WJI.07A
­-03N‗WKL.07A
­-03N‗WKM.07A

Pero en realidad el primer caracter que parece un GUION, no lo es, 
porque intente copiar 1 archivo en el ms-dos agregando el GUION y NO lo Copia, la unica
forma que copia archivos dentro del ms-dos es agregando el Caracter 240(ALT+240) al inicio del
achivo:

c:\origen>copy -03N=O5K.01A c:\destino
Función incorrecta.

}
Alguna sugerencia????:confused:

Lepe 19-05-2006 17:42:42

Intenta encerrando toda la ruta y nombre de archivo y extensión entre comillas dobles, despues lo mandas a Pchar(....). Desde un Win98 en adelante debería funcionar.

Si no... intenta con GetShortPathName de la api de windows.

Saludos y suerte

AGAG4 19-05-2006 18:32:36

Ok
 
Haciendo pruebas con las comillas dobles, no me funciono y con el uso de la función que me recomendo, no me sirve porque me regresa direcciones cortas, ejemplo:
Código Delphi [-]
function GetShortName(sLongName: string): string; 
var 
  sShortName:    string;
  nShortNameLen: Integer; 
begin 
  SetLength(sShortName, MAX_PATH); 
  nShortNameLen := GetShortPathName(PChar(sLongName), PChar(sShortName), MAX_PATH - 1);
  if (0 = nShortNameLen) then 
  begin 
    // handle errors... 
  end; 
  SetLength(sShortName, nShortNameLen); 
  Result := sShortName; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  Caption := GetShortName('C:\Program Files\Delphi6\Lib\test.cnt'); 
  // --> C:\PROGRA~1\Delphi6\Lib\test.cnt 
end;

Gracias por su respuesta... Sigo investigando.

AGAG4 19-05-2006 19:24:25

????
 
Porque Delphi me pone otro caracter????
Estoy intentando Remplazar 2 caracteres al nombre del archivo
-03N=O5K.01A el caracter 240 y 242 y queda así ð03NòO5K.01A de la forma siguiente:
Código Delphi [-]
xStr:=char(240)+copy(searchResult.Name,2,3)+char(242)+copy(searchResult.Name,6,7);
//ó con ....
xStr:=chr(240)+copy(searchResult.Name,2,3)+chr(242)+copy(searchResult.Name,6,7);
Siendo que dentro del fuente(Editor) de Delphi me lo pone correctamente
- (chr 240)
= (chr 242)
Que estará pasando????


La franja horaria es GMT +2. Ahora son las 17:14:05.

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