Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-07-2010
TecnoBestia TecnoBestia is offline
Miembro
 
Registrado: jun 2010
Posts: 35
Poder: 0
TecnoBestia Va por buen camino
Cargar una matriz desde Excel a una variable de array of arrar of Double

Hola a todos.

Tengo un programa para el cual debo cargar datos desde una archivo de excel. Estos datos deben ser cargado en una matriz de una dimensión muy grande pero puede variar de corrida a corrida Por eje. (5000x10) o más o menos.

El programa es un algoritmo genético que recibe una población de individuos representados por las filas de la matriz (cada fila es un individuo) y los deberá clasificar, el como no importa. El problema es que no tengo la menor idea de como cargar la matriz inicial. Tengo los datos en una hoja de excel la cual logro abrirla desde delphi utilizando un objeto OLE, pero no sé como extraer los datos de éste. Puedo verlos pero no tocarlos o copiarlos en la matriz.

Me gustaría una forma de tomar el rango en excel, copiarlos y pegarlos de alguna forma en Delphi y que delphi los carge a la matriz, he utilizado un TStringGrid pero no he logrado copiar los tados en el con un simple paste.

Soy novato en delphi, es mi primer programa, tal vez alguien me pueda decir como hacer lo que quiero, algún componente o algo así.

Gracias por su preciado tiempo.
Responder Con Cita
  #2  
Antiguo 07-07-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Hola.
Si los datos que tienes en Excel tienen "formato Tabla" y creo por lo que comentas que sí, lo más fácil es que accedas vía ADO.

Puedes crear una conexión con ADO y acceder a los datos de la hoja como si fuera una tabla; Con un simple recorrido accederás a las filas.

Es un tema que ya hemos tratado en los foros, y hay ejemplos de cómo hacerlo. Busca por "Excel ADO*" (sin las comillas) y encotrarás bastantes hilos.
En el FTP también puedes encontrar ejemplos. En concreto los dos primeros van sobre este tema.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 07-07-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola TecnoBestia, ademas de hacerlo con Ado como te dijo Neftali, también puedes hacerlo de esta forma:

Código Delphi [-]
const
  xlCellTypeLastCell = $0000000B;
var
 Excel, Sheet: OLEVariant;
 CantRow, CantCol, i, j : Integer;
 RangoMatriz: Variant;
begin
  FileName := 'C:\Archivo.xls';
  Excel := CreateOleObject('Excel.Application');
  Excel.Workbooks.Open(FileName);
 
  Sheet := Excel.Workbooks[ExtractFileName(FileName)].WorkSheets[1];
  Sheet.Activate;
  Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
 
  CantRow := Excel.ActiveCell.Row;
  CantCol := Excel.ActiveCell.Column;
 
  RangoMatriz := Excel.Range['A1', Excel.Cells.Item[CantRow,CantCol]].Value;
 
  StringGrid1.ColCount := CantCol+1;
  StringGrid1.RowCount := CantRow+1; 

  for i:=1 to CantRow do
   begin
    for j:=1 to CantCol do
      StringGrid1.Cells[j,i] := RangoMatriz[i,j]; 
   end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 07-07-2010
TecnoBestia TecnoBestia is offline
Miembro
 
Registrado: jun 2010
Posts: 35
Poder: 0
TecnoBestia Va por buen camino
Agradecimientos.

Muchas gracias a los dos, sus aportes siempres son acertados.

Les agradezco mucho su ayuda y su valioso tiempo.
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
puedo cargar una matriz como variable de sesion? gabrielflowers PHP 5 29-02-2008 21:03:52
Cargar datos desde Excel Drakyto Servers 3 07-09-2007 23:06:42
Cargar desde excel RaulChemical Servers 2 07-06-2006 16:24:50
Cargar una Base de Datos Paradox desde Excel famapo Tablas planas 0 12-10-2004 00:34:22
Error En Variable Double Red_Delphi Varios 3 03-09-2004 00:13:42


La franja horaria es GMT +2. Ahora son las 02:40:18.


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