-
Всем привет! Пишу программу по перегонке данных из файла *.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.
Понимаю всю детскость и нубскость вопроса, но сейчас мне очень надо в этом разобраться... Если запостил не туда, извиняюсь. Заранее благодарен.
-
А где begin..end; для function CreateOleObject(const ClassName:string):IDispatch;?
-
Кстати. "Перегоняют" обычно либо нефть, либо ... :)
-
function CreateOleObject(const ClassName:string):IDispatch; var ...: OleVariant;
procedure TForm1.Button3Click(Sender: TObject); ...
метод класса получился вложен в функцию. компилятор не ждет точку в описании процедуры внутри функции.
-
А стоит ли писать программу? Excel отлично понимает формат csv - тобишь формат с разделителями
-
Спасибо, попробую применить! А что должно быть между begin и end?
У меня нету разделителей...
-
> А что должно быть между begin и end?
Обычно код программы, но может быть и ничего. Я думаю, что с CreateOleObject ты ошибся или ты реально хочешь написать свою реализацию функции, ну так можешь посмотреть в исходника, что Борланд туда воткнул, я думаю что ничего кроме объявления.
|