Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.25;
Скачать: CL | DM;

Вниз

Invalid floating point operation Исключение класса ElnvalidOp   Найти похожие ветки 

 
XTD ©   (2006-06-05 16:26) [0]

OpenDialog1.Execute();
 ListBox2.Items.AddStrings(OpenDialog1.Files);
 y:=ListBox2.Items.Count;
 if y > 0 then
 begin
   i:=0;
   for i:=1 to y do
     begin
       ListBox1.Items.Add(FaileNameTime(ListBox2.Items[i-1]));//ОШИБКА !!!
     end;
 end;

Добавляю файлы в листбокс2, потом обрабатываю функцией FaileNameTime и потом возвращаю в листбокс1.
Когда выбираю  штук 20 файлов, все работает. Когда больше выбираю, ругается :
«Проект вызвал исключение класса ElnvalidOp с сообщением «Invalid floating point operation» Процесс остановлен»
Что делать ???


 
Ega23 ©   (2006-06-05 16:30) [1]


> FaileNameTime


Код функции в стуию.


> i:=0;
>    for i:=1 to y do
>      begin
>        ListBox1.Items.Add(FaileNameTime(ListBox2.Items[i-
> 1]));//ОШИБКА !!!
>      end;


Это изврат. Достаточно

for i:=0 to ListBox2.Items.Count-1 do
....


 
XTD ©   (2006-06-05 16:35) [2]

Функция работает с полным именем файла и преобразует его только в имя, без расширения и пути.
Пример код:
function ExtractFileNameEx(FileName: string; ShowExtension: Boolean): string;
//Функция возвращает имя файла, без или с его расширением.

//ВХОДНЫЕ ПАРАМЕТРЫ
//FileName - имя файла, которое надо обработать
//ShowExtension - если TRUE, то функция возвратит короткое имя файла
// (без полного пути доступа к нему), с расширением этого файла, иначе,
возвратит
// короткое имя файла, без расширения этого файла.
var
I: Integer;
S, S1: string;
begin
//Определяем длину полного имени файла
I := Length(FileName);
//Если длина FileName <> 0, то
if I <> 0 then
begin
 //С конца имени параметра FileName ищем символ "\"
 while (FileName[i] <> "\") and (i > 0) do
 i := i - 1;
 // Копируем в переменную S параметр FileName начиная после последнего
 // "\", таким образом переменная S содержит имя файла с расширением, но без
 // полного пути доступа к нему
 S := Copy(FileName, i + 1, Length(FileName) - i);
 i := Length(S);
 //Если полученная S = "" то фукция возвращает ""
 if i = 0 then
 begin
 Result := "";
 Exit;
 end;
 //Иначе, получаем имя файла без расширения
 while (S[i] <> ".") and (i > 0) do
 i := i - 1;
 //... и сохраням это имя файла в переменную s1
 S1 := Copy(S, 1, i - 1);
 //если s1="" то , возвращаем s1=s
 if s1 = "" then
 s1 := s;
 //Если было передано указание функции возвращать имя файла с его
 // расширением, то Result = s,
 //если без расширения, то Result = s1
 if ShowExtension = TRUE then
 Result := s
 else
 Result := s1;
end
 //Иначе функция возвращает ""
else
 Result := "";
end;


 
XTD ©   (2006-06-05 16:44) [3]

24 файла открывает, 25 ОШИБКА ... :-(


 
Ega23 ©   (2006-06-05 16:51) [4]


> function ExtractFileNameEx


Мне не эта функция нужна.
Вот смотри, у тебя в твоём коде
ListBox1.Items.Add(FaileNameTime(ListBox2.Items[i-1]));
что делает функция FaileNameTime? Приведи её код. Потому как остальное, по-идее, такое исключение вызвать не может.


 
XTD ©   (2006-06-05 16:52) [5]

Это и есть ее код ...


 
XTD ©   (2006-06-05 16:54) [6]

У меня тоже самое, только без комментариев ...


 
XTD ©   (2006-06-05 16:56) [7]

Что вообще вызывает исключение ??? Где можно почитать ???


 
Ega23 ©   (2006-06-05 16:59) [8]


> У меня тоже самое, только без комментариев ...


Вот и давай твоё "тоже самое".


 
XTD ©   (2006-06-05 17:01) [9]

I := Length(FileName);
if I <> 0 then
begin
 while (FileName[i] <> "\") and (i > 0) do
 i := i - 1;
 S := Copy(FileName, i + 1, Length(FileName) - i);
 i := Length(S);
 if i = 0 then
 begin
 Exit;
 end;

 while (S[i] <> ".") and (i > 0) do
 i := i - 1;
 S1 := Copy(S, 1, i - 1);
 if s1 = "" then
 s1 := s;
 NameF := s1;
 end
 else
 NameF := "";

 if Length(NameF) > 30 then
 begin
    res := copy(NameF,1,30);
 end
 else
 begin
    while Length(NameF) < 30 do
    begin
       NameF := NameF+" ";
    end;
    res:=NameF;
 end;


 
Ega23 ©   (2006-06-05 17:08) [10]

ужас какой-то. Посмотри в сторону функций ExtractFileName и ExtractFileExt


 
XTD ©   (2006-06-05 17:13) [11]

Ок!



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

Текущий архив: 2006.06.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.037 c
15-1148815028
deltav1
2006-05-28 15:17
2006.06.25
Cимплекс-метод


9-1131449174
VolanD666
2005-11-08 14:26
2006.06.25
Frustum in D3D


15-1149052365
Ega23
2006-05-31 09:12
2006.06.25
С Днём рождения! 31 мая


2-1149587403
Fiallo4ka
2006-06-06 13:50
2006.06.25
Базы данных Delphi


15-1149185752
Grozz
2006-06-01 22:15
2006.06.25
задачка про SQL