Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Feld aus Memokomponente in Excel einfügen (https://www.delphipraxis.net/75733-feld-aus-memokomponente-excel-einfuegen.html)

kevflg 24. Aug 2006 08:10


Feld aus Memokomponente in Excel einfügen
 
Hallo zusammen!
Ich schreibe hier ein Berechnungsprogramm das mir jetzt Zwischenergebnisse in ein Excel-Sheet ausgeben soll. (von einem Feld aus ner Memo Komponente)
Hab mich hier schon durch sämtliche Beiträge gekämpft, jedoch nix gefunden... Hier mal die ungefähre Form die ich mir dabei vorgestellt habe:

procedure ...
var oleArray: OleVariant; i,n:integer;
begin
n:=Memobox1.lines.count;
for i=0 to n-1 do
OleArray:=VarArrayCreate([0,n],varVariant);
OleArray[i]:= Memobox1.lines;
ExcelWorksheet1.Range['B3','En'].Value:=OleArray;
end;

Nehme jede Hilfe entgegen und bedanke mich schonmal!
Gruß Kevin

kevflg 24. Aug 2006 08:51

Re: Feld aus Memokomponente in Excel einfügen
 
bin jetzt ein Stück weiter.

type Feld=array[0..255] of real;
procedure ButtonBla
var oleArray: OleVariant; i,n:integer; f:Feld;
begin
n:=Memobox1.lines.count;
for i=0 to n-1 do f[i]:=StrToFloat(Form1.memo1.lines[i]);
OleArray:=VarArrayCreate([0,n-1],varVariant);

for i=0 to n-1 do begin
OleArray[i]:=f[i];
end;
ExcelWorksheet1.range['A1','A20'].value:=OleArray;

Helmi 24. Aug 2006 09:08

Re: Feld aus Memokomponente in Excel einfügen
 
Hallo,

du kannst dir eine Schleife sparen:

Delphi-Quellcode:
type Feld = array[0..255] of real;

procedure TForm1.Button1Click(Sender: TObject);
var
  oleArray: OleVariant;
  i, n   : Integer;
  f      : Feld;

begin
  n       := Memobox1.lines.count;
  OleArray := VarArrayCreate([0, n - 1], varVariant);


  for i := 0 to n - 1 do
    begin
      f[i]    := StrToFloat(Form1.memo1.lines[i]);
      OleArray := f[i];
    end;

  ExcelWorksheet1.range['A1', 'A20'].value := OleArray; //<-- müsste es nicht "Value2" heissen?
end;
Ach ja, verwende bitte die Delphi-Tags. So lässt sich ein Quell-Text besser lesen.

kevflg 24. Aug 2006 09:44

Re: Feld aus Memokomponente in Excel einfügen
 
Hallo Helmi,
danke das Du trotzdem geantwortet hast... meine Schleife hatte nur auf den ersten Blick einen sinnvolles Ergebnis. ;-) Glaube ich komme mit dem Feld Typ nicht hin...

Delphi-Quellcode:
  for i := 0 to n - 1 do
    begin
      f[i]    := StrToFloat(Form1.memo1.lines[i]);
      OleArray := f[i];
    end;
auch wenn ich den in Deine Schleife unten einbinde schreibt er mir nur 20 mal den letzten Wert auf. Und wenn ich mehrere Boxen übernehmen möchte bekomme ich weitere Probleme... ???

Helmi 24. Aug 2006 09:52

Re: Feld aus Memokomponente in Excel einfügen
 
Versuchs doch mal so:

Delphi-Quellcode:
for i := 0 to n - 1 do
    begin
      f[i]    := StrToFloat(Memo1.Lines.Strings[i]); //<<-- Änderung
      OleArray := f[i];
    end;

kevflg 24. Aug 2006 10:27

Re: Feld aus Memokomponente in Excel einfügen
 
nix
Ich denke bei "oleArray: OleVariant;" liegt das Problem. Es schimpft sich zwar Array, aber ist wohl wie bei savedialog nur für einen Wert und nicht für ne Schleife zu gebrauchen.
Scheint ja die Schleife abzulaufen, aber ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz