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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2008, 08:55   #1
Kio
 
Регистрация: 20.07.2008
Сообщений: 4
По умолчанию редактирование текста в блокноте.

В файле блокнота список песен из 7 папок. Мне надо удалить первые 3 цифры слева и заменить _ на пробел около 500 названий. С программированим почти не сталкивался. Подскажите как проще решить такую задачу. Спасибо.
34_LAS_KETCHUP_-_THE_KETCHUP_SONG_SPANGLISH_VERSION
Kio вне форума Ответить с цитированием
Старый 20.07.2008, 09:06   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Во-первых желательно узнать, на каком языке Вы собираетесь писать программу, а во-вторых, хотя бы кусок текстового файла, посмотреть, по каким признакам его преобразовывать.
Да и пишете Вы как-то непонятно
Цитата:
Мне надо удалить первые 3 цифры слева
а в примере(если это пример)
Цитата:
34_LAS_KETCHUP
всего две цифры слева.
puporev вне форума Ответить с цитированием
Старый 20.07.2008, 09:20   #3
Kio
 
Регистрация: 20.07.2008
Сообщений: 4
По умолчанию

здраствуйте. там понятно не 3 цифры, а первые 3 знака слева надо удалить.
Язык программирования, у нас в школе паскаль начался. Паскаль значит. Я просто не знаю, как в текстовом редакторе сделать нужную замену или в Excel.
04_ITALIA_SECRET_SERVICE_-_VIA_BEATO_ANGELICO.MP3
05_ELIADES_OCHOA_-_EL_CUARTO_DE_TULA.MP3
06_GADJO_-_BESAME_MUCHO.MP3
07_OLAV_BASOSKI_-_OPIUM_SCUMBAGS.MP3
таких строк примерно 500.
Kio вне форума Ответить с цитированием
Старый 20.07.2008, 09:23   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Не понимаю, если нужно один раз изменить данные в файле, то при чем тут программирование. Сделайте это руками.
puporev вне форума Ответить с цитированием
Старый 20.07.2008, 09:42   #5
The_Darkness
Пользователь
 
Регистрация: 06.01.2008
Сообщений: 83
По умолчанию

Если надо именно через паскаль проделать такую операцию тогда примерно так:
Код:
Const
 Max_Rec=500//кол-во элементов в файле
Var
 F:Text;
 S:Array[1..Max_Rec]of string;//Если у нас количество записей 500
 I,Ind:Integer;
 Begin
  Assign(F,'Документ.txt');
  Reset(F);
  For I:=1 to Max_Rec do
   Begin
    ReadLn(F,St[I]);
    Delete(St[I],1,3);
    Ind:=Pos('_',St[I]);
    While I<>0 do 
     Begin
      St[I][Ind]:=' ';
      Ind:=Pos('_',St[I]);
     End;
   End;
  Close(F);
  Rewrite(F);
  For I:=1 to Max_Rec do
   WriteLn(F,St[I]);
  Close(F);
 End.
При большом желании можно все в один цикл объеденить.
Прогрессирующий чайник..
The_Darkness вне форума Ответить с цитированием
Старый 20.07.2008, 10:04   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Я бы немного не так сделал. Перезаписывать файл, значит его утратить, а вдруг понадобится. Поэтому лучше записать в новый файл, писанины даже меньше.
Код:
uses crt;
Var
 F,G:Text;
 S:string;
 I:Integer;
 Begin
  Assign(F,'text.txt');
  Reset(F);
  Assign(G,'text1.txt');
  Rewrite(G);
  while not eof(F) do
   Begin
    ReadLn(F,S);
    Delete(S,1,3);
    for i:= 1 to length(s) do
	  if s[i]='_' then s[i]:=' ';
    writeln(G,s);
   End;
  Close(F);
  Close(G);
end.
End.
Вот исходный файл:
Цитата:
04_ITALIA_SECRET_SERVICE_-_VIA_BEATO_ANGELICO.MP3
05_ELIADES_OCHOA_-_EL_CUARTO_DE_TULA.MP3
06_GADJO_-_BESAME_MUCHO.MP3
07_OLAV_BASOSKI_-_OPIUM_SCUMBAGS.MP3
Вот новый файл:
Цитата:
ITALIA SECRET SERVICE - VIA BEATO ANGELICO.MP3
ELIADES OCHOA - EL CUARTO DE TULA.MP3
GADJO - BESAME MUCHO.MP3
OLAV BASOSKI - OPIUM SCUMBAGS.MP3
puporev вне форума Ответить с цитированием
Старый 20.07.2008, 10:16   #7
The_Darkness
Пользователь
 
Регистрация: 06.01.2008
Сообщений: 83
По умолчанию

Цитата:
Перезаписывать файл, значит его утратить, а вдруг понадобится
Ну нам же вроде надо изменить содержимое файла). А вообще пофиг, и то и то работает =)
Прогрессирующий чайник..
The_Darkness вне форума Ответить с цитированием
Старый 20.07.2008, 10:47   #8
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
А вообще пофиг, и то и то работает =)
Это неверно, Ваш код вообще не работает, т.к. в нем несколько ошибок.
1.Max_Rec=500//нужно поставить ;
S:Array[1..Max_Rec]of string;//в Паскале такой большой массив не потянет, нужно или брать массив порядка 200, или ограничить длину строки, например String[80];
2.
Код:
While I<>0 do    
     Begin   
      St[i][Ind]:=' ';   
      Ind:=Pos('_',St[i]);   
     End;
Этот цикл никогда не завершится, т.к. I никогда не будет =0.
puporev вне форума Ответить с цитированием
Старый 20.07.2008, 10:53   #9
The_Darkness
Пользователь
 
Регистрация: 06.01.2008
Сообщений: 83
По умолчанию

Цитата:
Этот цикл никогда не завершится, т.к. I никогда не будет =0.
Очепятался, там Ind а не I =)
Код:
Const
 Max_Rec=500;//кол-во элементов в файле
Var
 F:Text;
 St:Array[1..Max_Rec]of string;//Если у нас количество записей 500
 I,Ind:Integer;
 Begin
  Assign(F,'doc.txt');
  Reset(F);
  For I:=1 to Max_Rec do
   Begin
    ReadLn(F,St[i]);
    Delete(St[i],1,3);
    Ind:=Pos('_',St[i]);
    While Ind<>0 do
     Begin
      St[i][Ind]:=' ';
      Ind:=Pos('_',St[i]);
     End;
   End;
  Close(F);
  Rewrite(F);
  For I:=1 to Max_Rec do
   WriteLn(F,St[i]);
  Close(F);
 End.
вот. только что проверил, все работает
Прогрессирующий чайник..

Последний раз редактировалось The_Darkness; 20.07.2008 в 10:58.
The_Darkness вне форума Ответить с цитированием
Старый 20.07.2008, 10:57   #10
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Кстати насчет опечаток, объявляете переменную S, по ходу она превращается в St. Когда пишите код для человека, плохо в этом разбирающегося, прогоняйте программу перед тем, как публиковать. Это я все Ваши ошибки сразу вижу, а начинающий будет ломать себе голову, думая, что он там неправильно переписал.
puporev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Редактирование текста в Delphi Edo Помощь студентам 5 22.04.2008 08:18
задачка на техническое редактирование текста Милено4ка Паскаль, Turbo Pascal, PascalABC.NET 10 14.04.2008 09:17
Редактирование текста. Нужна помощь! quf Паскаль, Turbo Pascal, PascalABC.NET 3 12.04.2008 08:53
Сохранить файл в блокноте в формате UTF-8 Alar Общие вопросы Delphi 6 04.04.2008 05:29
Как работает Замена в блокноте? Alar Софт 9 14.01.2008 11:07