hola, tengo un programa que hice de consola el cual me devuelve unas líneas de comando que después yo leo y manejo según lo que me pongan, el porblema que yo tengo es a la hora de leer esas lineas,
y es que si hay un caracter especial 'ñ','á'... esa palabra me la deja en blanco, por lo que he visto el problema esta en 'OutputLine := WideString(Buffer) ; ' he probado a cambiar el wideString por string UTF8Encode... y no me han funcionado.
Código Delphi
[-]
RutaEXE := 'C:\SII\envioVerifactu\envioVerifactu.exe';
Parametros := '"' + fichero + '" ' + CONTROLWCERT_HUELLA.AsString + ' "' + CONTROLWRUTA_VERIFACTU.AsString + '"';
CommandLine := '"' + RutaEXE + '" ' + Parametros;
LOG('EJECUTANDO: ' + CommandLine);
try
if CreateProcess(nil, PChar(CommandLine),
nil, nil, True, 0, nil, nil, StartupInfo, ProcessInfo) then
begin
CloseHandle(WritePipe);
LOG('LEER LA SALIDA DEL PROCESO');
repeat
BytesRead := 0;
ZeroMemory(@Buffer, SizeOf(Buffer));
if ReadFile(ReadPipe, Buffer, SizeOf(Buffer) - 1, BytesRead, nil) and (BytesRead > 0) then
begin
Buffer[BytesRead] := #0;
OutputLine := WideString(Buffer) ;
ConsolaSalida := ConsolaSalida + OutputLine;
LOG(CONSOLAsALIDA);
end;
until BytesRead = 0;