Конференция "Начинающим" » Пишу программу по перегонке данных... [D7]
 
  • Дениска (13.10.09 01:19) [0]
    Всем привет! Пишу программу по перегонке данных из файла *.txt в файл *.xls. Проблема такая: при компиляции вылазит ошибка: «;» пропущено, но «.» найдено, на 32-й строке (procedure TForm1. …). Ошибка появилась после того, как я добавил строку 29. Смотрел много раз, вроде бы, с орфографией везде порядок…
    Советы по проге тоже очень приветствуются…

    unit Unit1;

    interface

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

    type
     TForm1 = class(TForm)
       Button3: TButton;
       OpenDialog1: TOpenDialog;
       SaveDialog1: TSaveDialog;
       procedure Button3Click(Sender: TObject);
       function CreateOleObject(const ClassName:string):IDispatch;
     private
       { Private declarations }
     public
       { Public declarations }
     end;

    var
     Form1: TForm1;

    implementation

    {$R *.dfm}

    function CreateOleObject(const ClassName:string):IDispatch;
    var f1{файл .txt}, f2{файл .xls}: file; {rчастота, sзатухание: array [1..2001] of real; mколичество строк: integer} exl,wb,sh: OleVariant;

    procedure TForm1.Button3Click(Sender: TObject);
    begin
     if opendialog1.Execute then begin
       assignfile(f1,opendialog1.FileName);
       reset(f1);
       {m:=число строк в файле-8;}
       {for i=1 to m do}
       {begin}
         {r[i]:=текст строки i+7, знаки 1 - 18;}
         {s[i]:=текст строки i+7, знаки 31 - 50;}
       {end;}
       closefile(f1);
     end;
     if savedialog1.Execute then begin
       exl:=CreateOleObject(InputBox('OleStr','CreateOleObject','Excel.Application.8')) ;
       try
         wb:=exl.Workbooks.Add(savedialog1.FileName);
         sh:=wb.WorkSheets[1];
       finally
         Exl := Unassigned;
         WB := Unassigned;
         Sh := Unassigned;
       end;
       assignfile(f2,savedialog1.FileName);
       rewrite(f2);
       {for i=1 to m do}
       {begin}
         {текст ячейки (строка i+1, столбец 1):=r[i];}
         {текст ячейки (строка i+1, столбец 2):=s[i];}
       {end;}
       closefile(f2);
     end;
    end;

    end.

    Понимаю всю детскость и нубскость вопроса, но сейчас мне очень надо в этом разобраться... Если запостил не туда, извиняюсь. Заранее благодарен.
  • Германн © (13.10.09 01:49) [1]
    А где begin..end; для function CreateOleObject(const ClassName:string):IDispatch;?
  • Германн © (13.10.09 01:50) [2]
    Кстати. "Перегоняют" обычно либо нефть, либо ...
    :)
  • McSimm © (13.10.09 01:51) [3]
    function CreateOleObject(const ClassName:string):IDispatch;
    var ...: OleVariant;

    procedure TForm1.Button3Click(Sender: TObject);
    ...

    метод класса получился вложен в функцию.
    компилятор не ждет точку в описании процедуры внутри функции.
  • Lucia (13.10.09 07:01) [4]
    А стоит ли писать программу?
    Excel отлично понимает формат csv - тобишь формат с разделителями
  • Дениска (14.10.09 08:29) [5]
    Спасибо, попробую применить! А что должно быть между begin и end?

    У меня нету разделителей...
  • Anatoly Podgoretsky © (14.10.09 11:31) [6]

    > А что должно быть между begin и end?

    Обычно код программы, но может быть и ничего.
    Я думаю, что с CreateOleObject ты ошибся или ты реально хочешь написать свою реализацию функции, ну так можешь посмотреть в исходника, что Борланд туда воткнул, я думаю что ничего кроме объявления.
 
Конференция "Начинающим" » Пишу программу по перегонке данных... [D7]
Есть новые Нет новых   [134467   +7][b:0][p:0]