Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
ВнизОшибка Найти похожие ветки
← →
lobach © (2006-10-05 13:27) [0]Еще вопросик, что означает ошибка:
"Access violation at address 004522EC in module "Project1.exe". Read of address FFFFFFFD"
← →
@!!ex © (2006-10-05 13:29) [1]Это значит что ты залез в неинициализированную область памяти при выполнении "Project1.exe".
P.S.
С английским совсем туго?
← →
Kolan © (2006-10-05 13:29) [2]Достаточно было перевести: Нарушение доступа к памяти. Те ты залез тода куда низя.
Обычно это случается при не верном обрашении к памяти, работе с массивами итд..
← →
oxffff © (2006-10-05 13:31) [3]Это означает, что у тебя ошибка по адресу 004522EC, инструкция пыталась прочитать по адресу FFFFFFFD.
Понятно?
← →
@!!ex © (2006-10-05 13:32) [4]oxffff © (05.10.06 13:31) [3]
Жжош. :)
← →
oxffff © (2006-10-05 13:33) [5]
> @!!ex © (05.10.06 13:29) [1]
> Это значит что ты залез в неинициализированную область памяти
> при выполнении "Project1.exe".
>
> P.S.
> С английским совсем туго?
А что есть инициализированные области?
← →
pavel_guzhanov © (2006-10-05 13:37) [6]
> А что есть инициализированные области?
ну например, ты объявил массив а:array[1..10] of Integer, а пытаешься в программе обратиться к a[12]. Тогда у тебя выйдет такая ошибка...
← →
@!!ex © (2006-10-05 13:38) [7]
> oxffff © (05.10.06 13:33) [5]
Да, конечно. :)
Согласен, не корректно написал с точки зрения резервирования памяти в ОС.
Но ИМХо так ему понятнее будет.
Не объяснять же, что есть память отвденная для нужд ОС(куда он собственно и сунулся) и что есть память выделенная для собственно данных.
P.S.
Инициализированная область памяти - это та область памяти, которая была зарезервирована программой, например, функцией GetMem. :)
← →
@!!ex © (2006-10-05 13:40) [8]
> ну например, ты объявил массив а:array[1..10] of Integer,
> а пытаешься в программе обратиться к a[12]. Тогда у тебя
> выйдет такая ошибка...
Не факт.
← →
Kolan © (2006-10-05 13:40) [9]Для устранения подобных ошибок. Используют "детекторы утечек". Для D7 я пользовался MemProof.
← →
clickmaker © (2006-10-05 13:42) [10]Для устранения подобных ошибок лучше использовать
for i := 0 to High(a)
← →
Kolan © (2006-10-05 13:45) [11]А причём тут массив? Или Telepator сработал :)
← →
MsGuns © (2006-10-05 14:18) [12]>clickmaker © (05.10.06 13:42) [10]
>Для устранения подобных ошибок лучше использовать
>for i := 0 to High(a)
for i := Low(a) to High(a)
← →
lobach © (2006-10-05 18:37) [13]Вобщем у меня процедура:
procedure TForm1.FindFile(Dir: string);
var
ext:String;
SR: TSearchRec;
FindRes: Integer;
begin
ext:= SR.Name[Length(SR.Name)-2]+SR.Name[Length(SR.Name)-1]+SR.Name[Length(SR.Name)];
FindRes := FindFirst(Dir + "*.*", faAnyFile, SR);
while FindRes = 0 do
begin
if ((SR.Attr and faDirectory) = faDirectory) and
((SR.Name = ".") or (SR.Name = "..")) then
begin
FindRes := FindNext(SR);
Continue;
end;
if ((SR.Attr and faDirectory) = faDirectory) then
begin
FindFile(Dir + SR.Name + "\\");
FindRes := FindNext(SR);
Continue;
end;
if ext="exe" then begin
ListBox1.Items.Add(SR.Name);
end;
FindRes := FindNext(SR);
end;
FindClose(SR);
end;
Выделяет строку:ext:= SR.Name[Length(SR.Name)-2]+SR.Name[Length(SR.Name)-1]+SR.Name[Length(SR.Name)];
Помогите
← →
Palladin © (2006-10-05 18:41) [14]ты вообще читаешь что тебе пишут? или чукча не читатель, чукча писатель?
← →
ProgRAMmer Dimonych (2006-10-05 18:41) [15]Длина SR.Name<2?
← →
lobach © (2006-10-05 18:47) [16]
> Длина SR.Name<2?
Да не должно... Но щас проверю
> ты вообще читаешь что тебе пишут? или чукча не читатель,
> чукча писатель?
Куда я ваш цикл запихну, он у меня на сложении глючит...
← →
Ketmar © (2006-10-05 20:23) [17]>[14] Palladin(c) 5-Oct-2006, 18:41
>ты вообще читаешь что тебе пишут? или чукча не
>читатель, чукча писатель?
не читает из принципа, судя по всему. за метлой, однозначно.
← →
DrPass © (2006-10-05 22:10) [18]
> Куда я ваш цикл запихну, он у меня на сложении глючит...
Дык, надо не просто читать, а еще и думать при этом :)
Вот, например, ответь на такой вопрос:
ext:= SR.Name[Length(SR.Name)-2]+SR.Name[Length(SR.Name)-1]+SR.Name[Length(SR.Name)];
Это ты типа расширение так получить собрался, да? (нет, нет, это еще не вопрос!) А как ты думаешь, что будет находиться в строке Name (и какая будет ее длина) в тот момент, когда выполняется эта строчка кода? Это уже вопрос.
← →
oxffff © (2006-10-05 22:26) [19]
> @!!ex © (05.10.06 13:38) [7]
>
> > oxffff © (05.10.06 13:33) [5]
>
> Да, конечно. :)
> Согласен, не корректно написал с точки зрения резервирования
> памяти в ОС.
> Но ИМХо так ему понятнее будет.
> Не объяснять же, что есть память отвденная для нужд ОС(куда
> он собственно и сунулся) и что есть память выделенная для
> собственно данных.
>
> P.S.
> Инициализированная область памяти - это та область памяти,
> которая была зарезервирована программой, например, функцией
> GetMem. :)
Во первых FFFFFFFD виртуальный адрес, который свыше 2GB.
Виртульаные адреса свыше 2GB (3GB при включенной опции) не поступны из RING 3.
Так что здесь возникнет исключение нарушение прав доступа. А не промах страницы.
Так что здесь это не неинициализированая область памяти.
А системная область вируальных адресов явно близко к 4Gb
← →
Ketmar © (2006-10-05 22:34) [20]>[18] DrPass(c) 5-Oct-2006, 22:10
>Дык, надо не просто читать, а еще и думать при
>этом :)
судя по всему, неко на это не сопсобно...
← →
lobach © (2006-10-06 05:09) [21]Дошло, мать вашу!!!! :)
if Length(SR.Name) > 3 then begin
ext:= SR.Name[Length(SR.Name)-2] + SR.Name[Length(SR.Name)-1] + SR.Name[Length(SR.Name)];
end;
← →
Percent (2006-10-06 05:16) [22]ext:= SR.Name[Length(SR.Name)-2] + SR.Name[Length(SR.Name)-1] + SR.Name[Length(SR.Name)];
А у меня файл называется "Картинка.jpeg".
И еще много файлов вообще без расширения.
Что делать будем?
← →
Наиль © (2006-10-06 08:41) [23]Дополнение к [22]
FindFirst(Dir + "*.*", faAnyFile, SR) может вернуть файл с названием "." (точка) какое значение должно пренять ext.
> Дошло, мать вашу!!!! :)
Ничего до тебя не дошло. Пока ты не ответишь на [18], работать не будет.
← →
Desdechado © (2006-10-06 11:34) [24]function ExtractFileExt(const FileName: string): string;
← →
Ketmar © (2006-10-06 12:54) [25]>[21] lobach(c) 6-Oct-2006, 05:09
не дошло. за метлой, за метлой...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.043 c