Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.03.15;
Скачать: [xml.tar.bz2];

Вниз

OLE Error   Найти похожие ветки 

 
Dennis S   (2009-01-23 10:52) [0]

При работе со строками, программа выдаёт ошибку "OLE error 800A03EC".
Что это значит? В чём проблема?
Кол-во строк при получении сообщения об ошибке: 2819.
При кол-ве строк менее 2000 такого не происходит.
Что это?


 
Dennis S   (2009-01-23 10:56) [1]

Ошибка при обработке:

procedure TForm1.toEXCEL1Click(Sender: TObject);
begin
       panX.Color := clYellow;
       mmX.Enabled := False;
       mmX2.Enabled := False;
       Excel := CreateOleObject("Excel.Application.9");
       Excel.Workbooks.Add;
       Excel.ActiveWorkBook.WorkSheets[1].Cells[1,1] := "Шифр заказа";
       Excel.ActiveWorkBook.WorkSheets[1].Cells[1,2] := "Код";
       Excel.ActiveWorkBook.WorkSheets[1].Cells[1,3] := "Наименование";
       Excel.ActiveWorkBook.WorkSheets[1].Cells[1,4] := "Ед.";
       Excel.ActiveWorkBook.WorkSheets[1].Cells[1,5] := "Кол-во";
       Excel.ActiveWorkBook.WorkSheets[1].Cells[1,6] := "Доп.инфо";
       Excel.ActiveWorkBook.WorkSheets[1].Range["A1:F1"].Select;
       Excel.Selection.Font.Name := "Tahoma";
       Excel.Selection.Font.Size := 9;
       Excel.Selection.Font.Bold := True;
       Excel.Selection.Interior.ColorIndex := 6;

       For i := 1 to mmX2.Lines.Count do begin
       pBAR2.Position := i * 100 div (mmX2.Lines.Count-1);
       n := n + 1;
         Excel.ActiveWorkBook.WorkSheets[1].Cells[i+1,1] := lbNAME.Caption;
         S := mmX2.Lines.Strings[n-1];
         Excel.ActiveWorkBook.WorkSheets[1].Cells[i+1,2] := S;
         S := mmX2.Lines.Strings[n];
         Excel.ActiveWorkBook.WorkSheets[1].Cells[i+1,3] := S;
         S := mmX2.Lines.Strings[n+1];
         Excel.ActiveWorkBook.WorkSheets[1].Cells[i+1,4] := S;
         S := mmX2.Lines.Strings[n+2];
         Excel.ActiveWorkBook.WorkSheets[1].Cells[i+1,5] := S;
         S := mmX2.Lines.Strings[n+3];
         Excel.ActiveWorkBook.WorkSheets[1].Cells[i+1,6] := COPY(S,3,(length(S)-2));
         if S = "" then n := n + 4 else n := n + 5;
       Application.ProcessMessages;
       end;

       Excel.ActiveSheet.PageSetup.Orientation := 2;
       Excel.Visible := True;

       panX.Color := clBtnFace;
       mmX.Enabled := True;
       mmX2.Enabled := True;
end;


 
Сергей М. ©   (2009-01-23 11:42) [2]

Выполнение какой конкретно строчки вызывает это исключение ?


 
Плохиш ©   (2009-01-23 12:34) [3]


> Dennis S   (23.01.09 10:52)
>
>

Я вот твою ошибку в гуглю скопировал, просто слова между ковычками и он мне выдал

Ergebnisse 1 - 10 von ungefähr 881 für OLE error 800A03EC. (0,15 Sekunden)

Не так уж и много страниц.
и первая ссылка http://entwickler-forum.de/showthread.php?t=17274
в которой подробно расписано, что кроме указанного тобой кода, в сообщении есть конкретная ошибка, возвращаемая екселем....


 
Dennis S   (2009-01-23 13:10) [4]

2 Сергей М. ©
Прерывается на:
Excel.ActiveWorkBook.WorkSheets[1].Cells[i+1,6] := COPY(S,3,(length(S)-2));

2 Плохиш ©
Спасибо, конечно, но я в немецком "0"...
Поэтому, как говорил один из кино-героев: "Хотелось бы в общих чертах понять о чём речь..."
Предполагаю, что ключ есть в посте "Andreas Kosch", но в чём фишка не понимаю...


 
Сергей М. ©   (2009-01-23 13:23) [5]


> Кол-во строк при получении сообщения об ошибке: 2819.


Строк каких - тех что в Мемо или тех что ты заполняешь на раб.листе ?

Каким образом ты определил, что именно на этой строчке "прерывается" ?
И чему в этот момент равна i ?


 
Dennis S   (2009-01-23 13:49) [6]

2 Сергей М. ©
строк в memo, которые потом и обрабатываются в TForm1.toEXCEL1Click

при сборке и работе из Delphi выскакивает Debugger Exception Notification с выделением этой стоки в коде.

в этот момент i равна 463.


 
Сергей М. ©   (2009-01-23 13:55) [7]

А n в этот момент чему равна ?
И почему переменные i и n у тебя статические, а не локальные ?


 
Плохиш ©   (2009-01-23 14:22) [8]


> Хотелось бы в общих чертах понять о чём речь...

я это писал?

> кроме указанного тобой кода, в сообщении есть конкретная
> ошибка, возвращаемая екселем....


 
Dennis S   (2009-01-23 17:54) [9]

2 Сергей М. ©
...в этот момент i равна 463...
а n равна 2671.

попробовал другой массив пропустить - проходит нормально...
хотя кол-во строк больше: 3746
на финише: i = 3746, n = 19232
а первый не идёт и всё тут...

2 Плохиш ©
я не понимаю какая ошибка, что она значит и что нужно править...


 
Dennis S   (2009-01-26 16:00) [10]

Может кто-нибудь всё-таки знает, в чём ошибка....?


 
Сергей М. ©   (2009-01-26 16:35) [11]


> а n равна 2671


Чему при этом равно mmX2.Lines.Count ?

И еще раз - почему переменные i и n у тебя статические, а не локальные ?


 
Dennis S   (2009-01-26 18:16) [12]

mmX2.Lines.Count = 2819 (естественно, не меняется во время цикла)

а статические они, потому что используются ещё другой процедурой.


 
Сергей М. ©   (2009-01-26 19:01) [13]


> статические они, потому что используются ещё другой процедурой.


Одновременно с этой что ли ?
Ну тогда ты ССЗБ.


 
Сергей М. ©   (2009-01-26 19:03) [14]

procedure TForm1.toEXCEL1Click(Sender: TObject);
begin
..
      n := n + 1; //Чему равно n ?!!!!


 
Dennis S   (2009-01-27 00:07) [15]

Будешь тут ССЗБ... :(
то, что ты докопался до "n", "i" - это конечно правильно, код ещё пока кривой...
но обозначенная мною трабла не в этом...
сейчас кое-что нашёл по этой ошибке в сети - пытаюсь разобраться сам.


 
Dennis S   (2009-01-27 00:20) [16]

Всё, нашёл в чём фишка!!! :))
В одной из строк из-за смещения данных в "источнике", при экспорте в Excel в одной из ячеек таблицы получается нечто, похожее на "=45" на это Excel и ругается!!!

Кстати, как обработать эту ошибку и вывести сообщение типа "Смещение данных в ячейке "Х", информация будет заменена на "ХХХ"!" и продолжить процесс?



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.03.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.04 c
15-1232194518
Кое кто
2009-01-17 15:15
2009.03.15
Ищу драйвер


15-1231622118
Б
2009-01-11 00:15
2009.03.15
Бикубическая интерполяция


2-1232630826
EastGod
2009-01-22 16:27
2009.03.15
Получить общую громкость


15-1231620194
Hpb
2009-01-10 23:43
2009.03.15
Какие есть компоненты для оптического распознавания текста?


15-1231493354
Vainuu
2009-01-09 12:29
2009.03.15
Экзамен!!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский