| 
| 
 | Вопрос # 3 841/ вопрос открыт / | 
 |  Доброго времени суток уважаемые эксперты.
 У меня такой вопрос как совместить типы OleVariant и Array?
 
 Суть проблемы в следующем:
 С помощю Excel нужно открыть текстовый файл и используя разделитель "запятая" сформировать колонки.
 На данном этапе все это я делаю так как показано в приложении, но проект не компилируется из за ошибок (На месте ошибки коментарий)
 В процедуре открытия файла .OpenText () за формат сформированных ячеек отвечает параметр FieldInfo который является массивом массивов при записи макроса это выглядит так: Array(Array(y,x),Array(y,x)...) где y номер столбца, х тип данных в нем.
 
 
 Вопрос можно поставить по другому как заполнить поле FieldInfo?
 
 P.S. Вопрос уже задавался (3555) правда более коряво изложенный.
 Приложение:Переключить в обычный режим procedure TForm1.CreateExelClick(Sender: TObject);TypeTArray = array [1..2] of word;var  WorkBook:Variant;  FIXLSApp:TExcelApplication;  FIWorkBook:ExcelWorkbook;  ExcelArray: array [1..12] of TArray;  LitleArray: TArray;  i:integer; begin      Litlearray[2]:=2;     for i:=1 to 12 do       begin       Litlearray[i]:=i;       ExcelArray[i]:=Litlearray;     end;   FIXLSApp := TExcelApplication.Create(Self);  FIXLSApp.Visible[0]:=true;  if FIXLSApp.WindowState[0] = xlMinimized then  FIXLSApp.WindowState[0] := xlNormal;  FIXLSApp.ScreenUpdating[0] := true;   OLEVariant(FiXLSApp.Workbooks).OpenText (Filename:='filename.txt',Origin:=65000,StartRow:=1,DataType:=xlDelimited,TextQualifier:=xlDoubleQuote,ConsecutiveDelimiter:=true,Tab:=True,Semicolon:=False,Comma:=True,Space:=False,Other:=False,FieldInfo:=ExcelArray,   // [Error]Unit1.pas(178):Type not allowed in OLE Automation call  TrailingMinusNumbers:=True);   FiXLSApp.Workbooks.__OpenText ('filename.txt',    65000,1,xlDelimited,xlDoubleQuote,true,True,False,True,    False,False,	ExcelArray  //[Error]Unit1.pas(186):Incompatible types OleVariant and Array	,True);end;
|  |   Вопрос задал: Кириченко Сергей (статус: 1-ый класс)Вопрос отправлен: 3 марта 2010, 14:02
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 7; последнее сообщение — 3 марта 2010, 15:58; участников в обсуждении: 3. 
|   | min@y™ (статус: Доктор наук), 3 марта 2010, 14:28 [#1]:Скажи мне, что тебе нужно в итоге получить. Таблицу Excel? Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Кириченко Сергей (статус: 1-ый класс), 3 марта 2010, 15:01 [#2]:Да и я ее получаю если не заполнять параметр FieldInfo но цифры отображаются в формате 1ю22334Е+10, а нужно 123455643534, так и с этой проблемой справляюсь потом (изменяю формат нужных ячеек на "цифровой"), но это плохой вариант решения лучше изначально сделать столбцы текстовыми. |  
|   | min@y™ (статус: Доктор наук), 3 марта 2010, 15:09 [#3]:А не проще воспользоваться компонентом XLSReadWriteII? Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Вадим К (статус: Академик), 3 марта 2010, 15:09 [#4]:если хочется, что бы столбцы были текстовыми, надо добавить в начало символ одиночной кавычки. То есть, где то так '12345
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Кириченко Сергей (статус: 1-ый класс), 3 марта 2010, 15:47 [#5]:min@y™: Как говорится нужно сначала о нем знать скачаю и посмотрю как с ним работать. |  
|   | min@y™ (статус: Доктор наук), 3 марта 2010, 15:58 [#7]: Цитата (Кириченко Сергей): Как говорится нужно сначала о нем знать скачаю и посмотрю как с ним работать.  Пока не скачаешь - не узнаешь.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |