Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661

Не до конца удаляется название несуществующего файла

04.08.2015, 02:29. Показов 1226. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не до конца удаляет название несуществующего файла. Ну,сделал метку,теперь бесконечно находит несуществующие файлы. Помогите,пожалуйста.



Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
program ss;
label 1;
var Vvod,Strochka,NameOf:string;
b,dlina:array[1..100] of integer;
stroki:array[1..100] of string;
n,g,m,l,Index,DlinaDelete,IndexDelete:integer;
FileText:text;
 
begin
g:=0;
m:=0;
Assign(FileText,('info.txt'));
Reset(FileText);
Read(FileText,Strochka);
closefile(FileText);
for n:= 1 to length(Strochka) do begin
if Strochka[n] = (',') then begin if m = 0 then begin l:=n; m:=1; end; g:=g+1; b[g]:=n+1; end;
end;
for n:= 1 to g do begin
dlina[n]:=b[n+1]-b[n]-1;
stroki[n]:= Copy(Strochka,b[n],dlina[n]);
end;
for n:= 1 to g do 
writeln(stroki[n]);
 
dlina[g+1]:=l-1;
Index:=1;
Stroki[g+1]:=Copy(Strochka,Index,dlina[g+1]);
writeln(Stroki[g+1]);
 
1: for n:= 1 to g+1 do begin
if FileExists(Stroki[n]) = false then begin writeln('Не найдено',Stroki[g],' не найдено'); DlinaDelete:=Length(Stroki[n]+1); IndexDelete:= b[n]; Delete(Strochka,IndexDelete,DlinaDelete);
end;
end;
 
Assign(FileText,('info.txt'));
Rewrite(FileText);
write(FileText,Strochka);
closefile(FileText);
 
for n:= 1 to g+1 do begin
if FileExists(Stroki[n]) = false then goto 1;
end;
end.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.08.2015, 02:29
Ответы с готовыми решениями:

Автоматически не удаляется процедура несуществующего компонента
Поместил на форму кнопку. Сделал по ней двойной клик. Попал в тело процедуры OnClick. Передумал. Удаляю кнопку с формы. Процедура остаётся...

Не удаляется до конца tencent
Программу tencent удалили, но остались файлы в автозапуске и в системных папках. Как полностью удалить вирус?

Не удаляется до конца Rad Studio
Удалил 2 дня назад Rad Studio. Там был траял 14 дней. После обычного удаления, я еще удалил все записи в во всех папках, таких как Local...

9
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
04.08.2015, 05:17
чего хоть программа делает?

Добавлено через 44 секунды
все понял в файле info.txt через запятую перечислены имена файлов. и если их нет удаляет.

Добавлено через 19 секунд
имя файла же может содержать запятые...
0
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
04.08.2015, 05:30  [ТС]
Так программа запятые не считывает. Она на символ позже запятых считывать названия начинает. То есть проверяет наличие файла без запятых.
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
04.08.2015, 05:59
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

в .Net есть функция Split и весь Ваш код сворачивается до:
Pascal
1
2
3
4
5
6
7
8
var
  stroki:array of string;
begin
....
  stroki:=Strochka.Split(',').where((s:string)->FileExists(s)).ToArray();
  Strochka:='';
  for i:=0 to length(stroki)-1 do Strochka:=Stroki[i]+',';
...
я по памяти пишу, паскаль еще качается, как скачается напишу мое видение

Добавлено через 19 минут
вот вся программа:
Pascal
1
2
3
4
uses System.IO;
begin
  &File.WriteAllText('info.txt',string.Join(',',&File.ReadAllText('info.txt').Split(',').Where((s:string)->FileExists(s)).ToArray()));
end.
Добавлено через 2 минуты
считать из файла строку с именами файлов, разделенную запятыми и записать туда-же измененную строку оставиви только существующие имена файлов.
0
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
05.08.2015, 03:14  [ТС]
Joy, спасибо. Обидно,что мой алгоритм оказался пустой тратой времени(

Добавлено через 26 минут
Joy, есть одна проблема только: удаляет запятую после названия файла...
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
05.08.2015, 04:27
NewNoob, вот дал готовый код и голова отключилась...
самое простое перед последней скобкой написать +',':
...ToArray())+',');

Добавлено через 6 минут
Цитата Сообщение от NewNoob Посмотреть сообщение
Обидно,что мой алгоритм оказался пустой тратой времени(
c чего бы это, не во всех паскалях есть фишки .Net. Тем более использование .Net облегчает программу, но значительно утяжеляет приложение. Под какой-нибудь AIX такое на Free Pascal уже не скомпилируешь...
Тем, более я считаю, что несколько часов проведенных за монитором и написании программ, не является пустой тратой времени, а скорее мозг думать учат. По Вашему коду - нет коментариев. Напишите комментарии, добавьте вывод после каждой операции и ошибка сама найдется.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33411 / 21521 / 8236
Регистрация: 22.10.2011
Сообщений: 36,922
Записей в блоге: 12
05.08.2015, 14:16
Joy, лишние действия не нужно прописывать: если прототип функции подходит под то, что хочет видеть Linq-овский метод - то достаточно просто написать название функции, а не подставлять список параметров и вызов функции:
Pascal
1
&File.WriteAllText('info.txt',string.Join(',',&File.ReadAllText('info.txt').Split(',').Where(FileExists).ToArray()));
(я про Where(FileExists), если что)
1
6 / 10 / 2
Регистрация: 29.05.2015
Сообщений: 661
16.09.2015, 18:30  [ТС]
volvo, как добавить сюда диалоговое окно? Чтобы если нашёл несущ.файла,то спросил,удалить или нет.
Я уже просто забыл,оо чём вообще речь была,а программа ээта нужна.
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
16.09.2015, 19:47
NewNoob, у меня претензии к алгоритму - зачем через запятую шлепать имена файлов(в имени файла запятая может быть)? когда гораздо проще с новой строки новое имя.

Добавлено через 2 минуты

Не по теме:

в соседней теме тоже часть вашего проекта присутствует. может проще обсуждение вести в одной теме. чем в двух.

0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33411 / 21521 / 8236
Регистрация: 22.10.2011
Сообщений: 36,922
Записей в блоге: 12
17.09.2015, 13:31
Цитата Сообщение от NewNoob Посмотреть сообщение
Чтобы если нашёл несущ.файла,то спросил,удалить или нет.
Очень просто:
Pascal
1
2
3
4
5
6
7
8
9
10
11
{$reference System.Core.dll}
{$reference System.Windows.Forms.dll}
uses System.Linq, System.IO, System.Windows.Forms;
function Check(name : string) : boolean;
begin
  result := FileExists(name) or (MessageBox.Show(name + ' not exists. Keep record?', 
                                 'Caption', MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes)
end;
begin
  &File.WriteAllText('info.txt',string.Join(',',&File.ReadAllText('info.txt').Split(',').Where(Check).ToArray()));
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.09.2015, 13:31
Помогаю со студенческими работами здесь

Редирект с несуществующего файла выдает 403 ошибку
Добрый день. Помогите, пожалуйста, проблема такая: 1. в .htaccess прописан редирект: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond...

Как можно узнать из файла .m3u название песни и вывести это название в Label?
Я делаю свою программку для прослушивания радиостанций (хоть таких и полно - но мне хочется создать что-то свое). Как можно узнать из файла...

Перебор файла посимвольно, как организовать цикл, работающий до конца файла.
Нужно перебрать файл посимвольно и, учитывая спецсимволы записать содержимое файла в Memo1. Помогите пожалуйста организовать цикл...

Внешняя сортировка бинарного файла (чтение после конца файла невозможно)
Помогите отладить программу, не вижу, что здесь можно сделать. Похоже, курсор файла где-то в коде сортировки доходит до конца, но потом все...

Не удаляется строка из файла
Подскажите. Почему у меня не удаляется опред.строка из файла? Айди строчки отправляется АЯКСом в файл. который должен удалить эту...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru