Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Importfilter (https://www.delphipraxis.net/32016-importfilter.html)

matze2004 17. Okt 2004 12:34


Importfilter
 
Hallo,das ist wirklich eine gelungene Website. Ich will man ehrlich sein. Ich habe von Programmiersprachen allgemein keine Ahnung und hoffe das mir jemand vieleicht freundlicherweise helfen kann. Und zwar habe ich eine Börsensoftware namens Spekulator. Diese hat zwar die möglichkeit Kurse zu Importieren und besitzt eine vorgefertigte Delphi Rotine siehe unten, ist aber leider nur in der Lage zum Import folgenden Kursformates.
(StdTranslator.dpr)

Delphi-Quellcode:
library StdTranslator;

uses SysUtils;

function BWInvestment(EDatei,ADatei:PChar):boolean;stdcall;

var T1,T2: TextFile;

    s,Titel:string;

begin

result:=true;

try

  Titel:=extractfilename(EDatei);

  setlength(Titel,length(Titel)-4);

  AssignFile(T1,EDatei);

  AssignFile(T2,ADatei);

  try

  Reset(T1);

  Rewrite(T2);

  readln(T1,s);

  writeln(T2,'Name'+#9+s);

  s:='';

  while not EOF(T1) do begin

    readln(T1,s);

    writeln(T2,Titel+#9+s);

  end;

  finally

  CloseFile(T1);

  CloseFile(T2);

  end;

except

  result:=false;

end;

end;

exports BWInvestment;

begin

end.


Die exportierte Funktion BWInvestment wandelt die historischen Kurse von folgenden Format

(1und1.txt)

Date Open High Low Close
22.05.98 112,48 115,3
25.05.98 113 113,51 112,74 113
26.05.98 112,48 112,48 110,18 110,44
...

in dieses:

(1und1.bwi)

Name Date Open High Low Close

1und1 22.05.98 112,48 115,3
1und1 25.05.98 113 113,51 112,74 113
1und1 26.05.98 112,48 112,48 110,18 110,44
...

Ich benötige aber einen Importfiler der dieses Kursformat umwandelt

Date,Open,High,Low,Close,Volume,Adj. Close*
1-Jul-02,21.15,21.30,20.71,21.20,505260,19.85
28-Jun-02,20.78,21.37,20.72,21.37,725406,20.01
27-Jun-02,20.65,20.80,20.19,20.45,1038750,19.15
26-Jun-02,19.50,20.38,19.25,20.21,1029610,18.92
25-Jun-02,19.66,20.30,19.66,20.05,546257,18.77

und zwar besteht das Problem dabei das die Monatsangabe in Worten geschrieben ist
,es müsste eine möglichkeit geben diese wortangabe der jeweiligen Monatszahl zuzuordnen.


Außerdem müssen die Trennzeichen in Semmikolon (;) umgewandelt werden, anstatt (-) bzw.( ,) .
Jemand hat mir freundlicherweise schon dazu etwas vorbereitet (siehe unten) doch besteht bei mir das Problem das ich keine Delphi Software besitze und auch keine Ahnung vom Kompelieren habe.

1) bitte benutze die code-tags


z.b. das hier: 1-Jul-02,21.15,21.30,20.71,21.20,505260,19.85

du entfernst den text bis einschließlich dem ersten "-" liest dann den text bis zum nächsten "-" und vergleichst dann...

man könnte z.b. ein array anlegen, alla:

Code:
const
CMonthTextArray : array [1..12] of string = ('jan', 'feb', 'mar', 'apr', 'mai', 'jun',
'jul', 'aug', 'sep', 'oct', 'nov', 'dec');


und (angenommen dein Monatstext steht in der Variable AMonthText) dann per:

Code:
Delphi-Quellcode:
var
  Index : Byte;
  MonthNumber : Byte;
begin
  MonthNumber := 0;
  for Index := Low(CMonthTextArray) to High(CMonthTextArray) do
  begin
    if (AnsiLowerCase(AMonthText) = CMonthTextArray[Index]) then
    begin
      MonthNumber := Index;

      Break;
    end;
  end;  
end;
Mir wirde wirklich sehr geholfen sein wenn jemannd diese Umänderungen dann in eine Datei namens StdTranslator.dll umwandeln würde. Dankeschön

[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
[edit=Christian Seehase]Meine Korrektur korrigiert ;-) Mfg, Christian Seehase[/edit]

fkerber 17. Okt 2004 12:40

Re: Importfilter
 
Hi!

Herzlich Willkommen in der DP.

Benutze doch bitte die [delphi.] [/delphi.] Tags (ohne die Punkte), um den Code besser zu formatieren.

Ciao Frederic

DP-Maintenance 17. Okt 2004 12:42

DP-Maintenance
 
Dieses Thema wurde von "Christian Seehase" von "Fragen / Anregungen zur DP" nach "Sonstige Fragen zu Delphi" verschoben.
Hat nichts mit der DP zu tun.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr.

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