Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2011, 05:08   #1
magistic
Пользователь
 
Регистрация: 06.12.2010
Сообщений: 15
Печаль Соединение ТХТ файлов

Помогите разобраться с программой соединения ТХТ файлов.
Есть файлы: 1ОРТ, 3РТР, 4СТС, 5 Первый краевой, 6НТВ, 7ТНТ, 10Спорт, они разбиты по дням недели Понедельник, Вторник, Среда, Четверг, Пятница, Суббота, Воскресенье - нужно из каждого канала взять Понедельник и вставить в соответствующий файл 1_PONED, Вторник - 2_VTOR, Среда - 3_SRED, Четверг - 4_CHETV, Пятница - 5_PYATN, Суббота - 6_SUB, Воскресенье - 7_VOSKR. Чтобы получить в файле
@Z_STYLE70 =
@Programm = ПЕРВЫЙ
(сюда вставляется текст из канала)
@Programm = РОССИЯ 1

@Programm = СТС

@Programm = ПЕРВЫЙ КРАЕВОЙ

@Programm = НТВ

@Programm = ТНТ

@Programm = РОССИЯ КУЛЬТУРА

@Programm = РОССИЯ 2
Помогите чем сможете разобраться.....
Вложения
Тип файла: zip TV_dpr.zip (204.9 Кб, 11 просмотров)
Тип файла: zip Чистая неделя.zip (1.9 Кб, 11 просмотров)
Тип файла: zip Подготовка ТВшки.zip (204.8 Кб, 10 просмотров)
magistic вне форума Ответить с цитированием
Старый 01.07.2011, 08:46   #2
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Ниже показано как можно работать с текстовыми файлами без файловых переменных:

Код:
const
  CntCh = 8;
  ArrCh : array[1..CntCh] of record Ch, Name : string end =
          ((Ch:'1ОРТ.txt'; Name:'ПЕРВЫЙ'),
           (Ch:'10Спорт.txt' ;Name:'РОССИЯ 2'),
           (Ch:'11Культура.txt'; Name:'РОССИЯ КУЛЬТУРА'),
           (Ch:'3РТР.txt'; Name:'РОССИЯ 1'),
           (Ch:'4СТС.txt'; Name:'СТС'),
           (Ch:'5 Первый краевой.txt'; Name:'ПЕРВЫЙ КРАЕВОЙ'),
           (Ch:'6НТВ.txt'; Name:'НТВ'),
           (Ch:'7ТНТ.txt'; Name:'ТНТ'));

  ArrWeek : array[1..7] of record Fl, Name : string end =
          ((Fl:'1_PONED.txt'; Name:'ПОНЕДЕЛЬНИК'),
           (Fl:'2_VTOR.txt'; Name:'ВТОРНИК'),
           (Fl:'3_SRED.txt'; Name:'СРЕДА'),
           (Fl:'4_CHETV.txt'; Name:'ЧЕТВЕРГ'),
           (Fl:'5_PYATN.txt'; Name:'ПЯТНИЦА'),
           (Fl:'6_SUB.txt'; Name:'СУББОТА'),
           (Fl:'7_VOSKR.txt'; Name:'ВОСКРЕСЕНЬЕ'));

procedure TForm1.Button1Click(Sender: TObject);
var
//  F_1ort, F_3RTR, F_4CTC, F_5Ren_TV, F_6NTV, F_MUZ_TV, F_TNT_TV, F_KULT, F_DTV, F_Sport: TextFile;
//  F_1_PONED, F_2_VTOR, F_3_SRED, F_4_CHETV, F_5_PYATN, F_6_SUB, F_7_VOSKR: TextFile;
//  S: AnsiString;
//  Count: Integer;

  SLCh, SLWeek : TStringList;
  I, J, K, Ind : Integer;
  PathCh, PathWeek, Stop : string;
begin
  //файлы для обработки располагаем в своих подкаталогах
  PathCh := ExtractFilePath(ParamStr(0))+'Подготовка ТВшки\';
  PathWeek := ExtractFilePath(ParamStr(0))+'Чистая неделя\';

  SLCh := TStringList.Create;
  SLWeek := TStringList.Create;
  try
    for I := 1 to 7 do begin  //по дням недели.
      SLWeek.Clear;
      SLWeek.Add('@Z_STYLE70 = ');
      for J := 1 to CntCh do begin
        SLWeek.Add('@Programm = '+ArrCh[J].Name);
        SLCh.LoadFromFile(PathCh+ArrCh[J].Ch);
        Ind := SLCh.IndexOf(ArrWeek[I].Name);
        //строка выше - поиск наименования дня недели (ВТОРНИК, например),
        //но он не сработает, если в той же строке будут другие символы
        //"ВТОРНИК, 5 ИЮЛЯ", например. Поэтому нужен иной поиск
        K := 1;
        while K < SLCh.Count do begin
          if Pos(ArrWeek[I].Name, SLCh[K]) > 0 then
            Break;
          Inc(K);
        end;

        if K < SLCh.Count-1 then begin
          if I < 7 then
            Stop := ArrWeek[I+1].Name;
          Inc(K);
          while (K < SLCh.Count) do begin
            SLWeek.Add(SLCh[K]);            //запись передачь
            Inc(K);
            if (I < 7) and (Pos(Stop, SLCh[K]) > 0) then
              break;
          end;
          //здесь SLWeek содержит все передачи и можно заняться их разборкой
        end;
      SLWeek.SaveToFile(PathWeek+ArrWeek[I].Fl);   //запись строк в файл
      end;
    end;
  finally
    SLWeek.Free;
    SLCh.Free;
  end;
end;
Прик вне форума Ответить с цитированием
Старый 04.07.2011, 05:01   #3
magistic
Пользователь
 
Регистрация: 06.12.2010
Сообщений: 15
По умолчанию СПАСИБО

СПАСИБО, сейчас попробую
magistic вне форума Ответить с цитированием
Старый 24.01.2012, 04:20   #4
magistic
Пользователь
 
Регистрация: 06.12.2010
Сообщений: 15
Злость Продолжение программы, есть еще нюансы

Скажите пожалуйста, а можно чтобы в этой программе перед "Т/с" и "Х/ф" ставился символ <B>???
magistic вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт ТХТ файлов в Excel Sepaa Microsoft Office Excel 8 13.11.2010 22:06
Массовое редактирование тхт файлов Tvitvi PHP 3 06.05.2010 20:51
Работа с каталогом тхт файлов. littlecoder Общие вопросы Delphi 4 17.12.2008 22:47
Запись файлов в *.тхт с учетом повторяющихся значений Arteom Общие вопросы Delphi 3 03.04.2008 17:26
соединение файлов Lonix Общие вопросы Delphi 1 06.11.2007 22:52