 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Touchsoftwares Master


Registrado: 16 Dic 2002Mensajes: 869Ubicación: MEXICO Playa del Carmen
|
Publicado: Lun 06 Oct, 2008 5:29 pm Asunto: Ayudar a traducir de Delphi a c++ |
|
|
Porfa solicito ayuda a traducir de Delphi a C++ la siguiente funcion (que considero qeu nos servira a todos)
| Código: |
function SaveAsExcelFile(AGrid: TStringGrid; AFileName: string): Boolean;
const
{$J+} CXlsBof: array[0..5] of Word = ($809, 8, 00, $10, 0, 0); {$J-}
CXlsEof: array[0..1] of Word = ($0A, 00);
var
FStream: TFileStream;
I, J: Integer;
begin
FStream := TFileStream.Create(PChar(AFileName), fmCreate or fmOpenWrite);
try
CXlsBof[4] := 0;
FStream.WriteBuffer(CXlsBof, SizeOf(CXlsBof));
for i := 0 to AGrid.ColCount - 1 do
for j := 0 to AGrid.RowCount - 1 do
XlsWriteCellLabel(FStream, I, J, AGrid.cells[i, j]);
FStream.WriteBuffer(CXlsEof, SizeOf(CXlsEof));
Result := True;
finally
FStream.Free;
end;
end;
|
_________________ Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc
http://www.touchsoftwares.com |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 06 Oct, 2008 8:38 pm Asunto: |
|
|
Al ir a convertirlo he visto que faltaba el código de la función "XlsWriteCellLabel" y lo he añadido (la función que faltaba la encontré enhttp://www.clubdevelopers.com/index.php?p=85&all=0&fs=169#249):
| Código: | void XlsWriteCellLabel(TStream* XlsStream, const WORD ACol,
const WORD ARow, const String AValue)
{
WORD L = AValue.Length();
WORD CXlsLabel[] = { 0x204, 8+L, ARow, ACol, 0, L };
XlsStream->WriteBuffer(CXlsLabel, sizeof(CXlsLabel));
XlsStream->WriteBuffer(AValue.c_str(), L);
}
bool SaveAsExcelFile(TStringGrid* AGrid, String AFileName)
{
bool ret = false;
WORD CXlsBof[] = { 0x809, 8, 0, 0x10, 0, 0 };
WORD CXlsEof[] = { 0x0a, 0 };
TFileStream* FStream = new TFileStream(AFileName, fmCreate | fmOpenWrite);
try {
FStream->WriteBuffer(CXlsBof, sizeof(CXlsBof));
for (int x = 0; x < AGrid->ColCount; x++)
for (int y = 0; y < AGrid->RowCount; y++)
XlsWriteCellLabel(FStream, x, y, AGrid->Cells[x][y]);
FStream->WriteBuffer(CXlsEof, sizeof(CXlsEof));
ret = true;
}
__finally {
delete FStream;
}
return ret;
} |
|
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|