Avatar billede diz Nybegynder
10. februar 2004 - 11:43 Der er 4 kommentarer og
1 løsning

sammenligning af excell ark

Hejsa,

jeg har brug for at læse felter fra en excell fil. Er der nogen der ved hvordan dette kan klares?

/Sune
Avatar billede pzw Nybegynder
10. februar 2004 - 13:10 #1
Simpelt eksempel som opretter et Excel ark, giver celle A1 en værdi, efterfølgende læser værdien i celle A1 og viser den:
Du skal have Excel 97 eller nyere installeret for at det virker.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,
  ComObj;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

const
  xlThick = $00000004;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
  Var
    Excel: OleVariant;
    Range: OleVariant;
    Str1:  String[80];

begin
    Excel:=CreateOleObject('Excel.Application');
    Excel.WorkBooks.Add;
    Excel.Visible:=False;
    Excel.DisplayAlerts:=False;

    Range:=Excel.Sheets[1].Range['A1'];
    Range.FormulaR1C1:='Hest';

    Str1:=Range.FormulaR1C1;
    Showmessage('Læst tekst: '+str1);

    Excel.ActiveWorkbook.SaveAs('C:\TestFil.xls');
    Excel.WorkBooks.Close;
    Excel.Quit;
    Excel:=Unassigned;

    Showmessage('Færdig !!!');
end;

end.
Avatar billede borrisholt Novice
14. februar 2004 - 10:36 #2
Har du brug for at vide om to Excel filer er NØJAGTIG en ... bare med forskellige filnanvne ?

Jens B
Avatar billede borrisholt Novice
17. februar 2004 - 20:24 #3
Sover du ?
Avatar billede diz Nybegynder
17. februar 2004 - 22:49 #4
Sorry, nej jeg sover ikke.

Jeg har fundet ud af at bruge en odbc forbindelse, med en driver som kan læse excell ark direkte. På den måde kan jeg foretage SQL statements osv direkte på arket. Det er netop det jeg skal bruge, ser det ud til. Skal nok vende tilbage hvis der opstår problemer.

Men jeg vil da meget gerne vide hvordan man kan sammenligne om to excell filer er helt ens bare forskellige navne.

/Sune
Avatar billede borrisholt Novice
18. februar 2004 - 09:46 #5
Brug den her funktion :
function GetCheckSum(const FileName: TFileName): Integer;
var
  F: file of Integer;
  Fsize: Integer;
  Buffer: array[0..500] of Integer;
begin
  FileMode := 0;
  AssignFile(F, FileName);
  Reset(F);
  Seek(F, FileSize(F) div 2);
  Fsize := FileSize(F) - 1 - FilePos(F);
  if Fsize > 500 then
    Fsize := 500;
  BlockRead(F, Buffer, Fsize);
  CloseFile(F);
  asm
      xor eax, eax
      xor ecx, ecx
      lea edx , Buffer
    @again:
      add eax, [edx + 4*ecx]
      inc ecx
      cmp ecx, fsize
    jl @again
      mov @result, eax
  end;
end;

Hvis chechsummen er en er DET den samme fil !

Jens B
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester