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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.012 c
15-1149071072
konda
2006-05-31 14:24
2006.06.25
Реферат по химии на английском языке.


2-1149670850
NikSoft
2006-06-07 13:00
2006.06.25
Панель задач и реестр XP


1-1147788452
Neo Trinitron
2006-05-16 18:07
2006.06.25
Грамотная обработка ошибки


4-1143525270
stas77
2006-03-28 09:54
2006.06.25
события windows


10-1121066017
xmed
2005-07-11 11:13
2006.06.25
трехзвенная архитектура => Статистика на сервере





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский