Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 19.01.2020, 23:51   #1
Ivan12121
Новичок
Джуниор
 
Регистрация: 19.01.2020
Сообщений: 1
По умолчанию Перенос из Pascal ABC в C#. По возможности добавить копирование в программу

День добрый. Написал программу на Pascal, но не могу в нем сделать копирование файла в другую папку. Задача состоит в следующем. Есть текстовый файл, в нем содержится построчно пути к другим файлам, которые надо переименовать в зависимости от пути.(Пример: в текстовом файле 1 строка C:\2020\01.Основная\03.Документы\до к.txt, необходимо его переименовать в 2020_01_03_док.txt). Если в папке несколько файлов, необходимо добавить номера, но так как пути упорядочены, я смотрел предыдущие файлы. В итоге должен быть переименован файл и скопирован в папку.
Код:
var
  f1: text;
  nn, b, s, g, t, u, st1, st2, st3, st4: string;
  i, y, h: integer;
 
begin
  AssignFile(f1, 'C:\Users\Иван\Desktop\1234.txt'); // путь к блокноту с координатами файла
  Reset(f1);
  while not EOF(f1) do
  begin
    readln(f1, s);
    st2 := ExtractFilePath(s);
    if st1 = st2 then h := h + 1 else h := 0;
    if (Pos('\', s) <> 0) and (Pos('.', s) <> 0) then
    begin
      i := Length(s);
      while s[i] <> '\' do
        dec(i);
      inc(i);
      while s[i] <> '.' do
      begin
        g := g + s[i];//имя файла
        inc(i);
      end;
      while i <= Length(s) do
      begin
        t := t + s[i];//рассширение
        inc(i);
      end;
    end;
    y := 0;
    b := '';
    u := ExtractFilePath(s);
    for i := 1 to length(u) do
    begin
      if (s[i] in ['0'..'9']) then begin b := b + s[i];y := y + 1; end; // выделяем все цифры из названия
      if y > 0 then if s[i] = '\' then b := b + '_'; //меняем символ в имени файла
    end;
    // b := b + '=_';
    if h = 0 then nn := u + b + g + t; // имя, если файл один в папке
    g := g + '_';
    if h > 0 then nn := u + b + g + IntToStr(h) + t; // имя, если до этого были файлы в схожей директории
    t := '';
    g := '';
    RenameFile(s, nn);   
    st1 := ExtractFilePath(s); // путь, для проверки кол-ва файлов в папке
  end;
  Closefile(f1);
end.
Ivan12121 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите отредактировать и по возможности дописать программу arnora Общие вопросы C/C++ 0 21.12.2017 13:26
разработать класс и программу, иллюстрирующую его возможности Мариша33 Помощь студентам 0 27.11.2013 09:55
Возможности языка Pascal. BlackFishSQL Паскаль, Turbo Pascal, PascalABC.NET 13 04.07.2011 12:42
возможности pascal hasana Паскаль, Turbo Pascal, PascalABC.NET 1 31.05.2010 16:22
Возможности Pascal cnst_bus Lazarus, Free Pascal, CodeTyphon 3 22.11.2009 11:15


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS