Цитата:
if OpenDialog1.Execute then
begin
AssignFile(f, OpenDialog1.FileName);
reset(f);
|
Допустим.
Цитата:
// Удаляем из файла повторяющиеся строки и переводим строки в массив
while not Seekeof(f) do
begin
readln(f, st); { считываем из файла строки }
probel:= Pos (' ',st); {находим координаты символа 'пробел' в конце строки}
Delete (st,probel,200); {удаляем все пробелы в конце каждой строки}
|
А если там 203 пробела? Поискали бы получше в гугле, нашли бы
Trim.
Цитата:
N := N + 1; { увеличиваем переменную на единицу }
|
А где инициализация N?
Цитата:
repeat
begin
i := i + 1; { увеличиваем переменную на единицу }
|
А где инициализация I?
Цитата:
N := N + 1; { увеличиваем переменную на единицу }
repeat
begin
i := i + 1; { увеличиваем переменную на единицу }
a[i] := st; { записываем строки в массив }
end;
until i = N; { условие для окончания циклы }
|
No comment... Вам за количество строк кода платят?
Цитата:
end;
N_strok := 1;
for i := 1 to N do
begin
|
А если в файле 1007 строк, а массив до 1000?
Цитата:
flag := true;
for l := 1 to N_strok do
|
А если в файле 1005 уникальных строк, а массив до 1000?
Количество ошибок зашкаливает. 5 штук на такой короткий код. 4 из 5 могут привести к той самой ошибке A/V.