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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2009, 10:27   #1
ken8888
 
Регистрация: 15.04.2009
Сообщений: 6
По умолчанию Работа С TXT

Здравствуйте!
Такая задачи стоит:
Создать программу в pascal'е , чтобы программа открывала текстовый файл, и меняла все + на -, и наоборот. После чего записывала в новый файл.
ПОМОГИТЕ ПЛИЗ!!!
ken8888 вне форума Ответить с цитированием
Старый 01.06.2009, 10:40   #2
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

ken8888 ну и что не получается?
Открываешь файл1, идешь в цикле по файлу пока не достигнешь конца, и если встречаешь "+", то меняешь на "-", иначе "-" на "+", и все это пишешь в файл2. В конце закрываешь файл1 и файл2.
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 01.06.2009, 11:03   #3
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
const plus='+';
      minus='-';
var f1,f2:text;
    s:string;
    i:integer;
begin
assign(f1,'c:\1.txt');
reset(f1);
assign(f2,'c:\2.txt');
rewrite(f2);
while not(eof(f1)) do
 begin
   readln(f1,s);
   for i:=1  to length(s) do
    if s[i]=plus then s[i]:=minus
       else if s[i]=minus then s[i]:=plus;
   writeln(f2,s);
 end;
 close(f1);
 close(f2);
 assign(f1,'c:\1.txt');
 Erase(f1);
 Rename(f2,'c:\1.txt');
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 01.06.2009, 13:27   #4
ken8888
 
Регистрация: 15.04.2009
Сообщений: 6
По умолчанию

alex_fcsm
Cпасибо золотой человек!!!

P.S:
Суть: в файле идут строчки, в каждой строчке по +/-n +/-m
Но попадаются строчки +/-n
Так вот их надо пропускать, тоесть только по 2 символа менять в строке, по одному не надо.
Можно ли такое сделать???
ЗЗЫ. А как поднять репутацию?

Последний раз редактировалось ken8888; 01.06.2009 в 13:43.
ken8888 вне форума Ответить с цитированием
Старый 01.06.2009, 14:39   #5
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от ken8888 Посмотреть сообщение
P.S:
Суть: в файле идут строчки, в каждой строчке по +/-n +/-m
Но попадаются строчки +/-n
Так вот их надо пропускать, тоесть только по 2 символа менять в строке, по одному не надо.
Можно ли такое сделать???
ЗЗЫ. А как поднять репутацию?
Не понял что надо менять?
+/-n на +/-m?
Репутация - весы под аватаркой
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 01.06.2009, 15:11   #6
ken8888
 
Регистрация: 15.04.2009
Сообщений: 6
По умолчанию

Пример файла:
Код:
+40
8
+50-10
+100+40
-20+40
Сейчас программа меняет все знаки, а надо, чтобы только парами (+50-10) -менять, (+100+40) - тоже
А вот где ( +40 ) не надо.
ken8888 вне форума Ответить с цитированием
Старый 01.06.2009, 15:21   #7
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Что-то в этом духе
Код:
const plus='+';
      minus='-';
var f1,f2:text;
    s:string;
    i,j:integer;
begin
assign(f1,'c:\1.txt');
reset(f1);
assign(f2,'c:\2.txt');
rewrite(f2);
while not(eof(f1)) do
 begin
   readln(f1,s);
   j:=0;
    for i:=1  to length(s) do
    if (s[i]=plus) or (s[i]=minus) then inc(j);
  if j=2 then begin
   for i:=1  to length(s) do
    if s[i]=plus then s[i]:=minus
       else if s[i]=minus then s[i]:=plus;
  end;
   writeln(f2,s);
 end;
 close(f1);
 close(f2);
 assign(f1,'c:\1.txt');
 Erase(f1);
 Rename(f2,'c:\1.txt');
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 01.06.2009, 16:38   #8
ken8888
 
Регистрация: 15.04.2009
Сообщений: 6
По умолчанию

alex_fcsm
Вот СПАСИБО тебе БОЛЬШОЕ!!!
А то я сижу мучаюсь.
ken8888 вне форума Ответить с цитированием
Старый 01.06.2009, 16:41   #9
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Цитата:
Сообщение от ken8888 Посмотреть сообщение
alex_fcsm
Вот СПАСИБО тебе БОЛЬШОЕ!!!
А то я сижу мучаюсь.
кстати скорее всего нужно условие
Код:
if j=2 then
поменять на
Код:
if j mod 2=0 then
...
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 01.06.2009, 16:46   #10
ken8888
 
Регистрация: 15.04.2009
Сообщений: 6
По умолчанию

Спасибо, и так норм, просто тут фиксированно либо 1 -\+ либо 2 -/+

И такой вопрос: Я уже сам сделаю как путь задавать,менять. Но а можно например, файлик кидать на .exe и он сам конвертил.
Просто прога, уже написаная не мной будет работать в досе, из-под волковкомандера, и хотелось бы как-то упростить это.
Например выбрали файл в командере, как-нить его оп на вот эту программу. и он сам проконвертил, и сохранил. (наверное вы поняли, что я хотел alex_fcsm )
ken8888 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлом (на примере txt) ROD Общие вопросы C/C++ 3 22.02.2009 15:01
Работа с txt файлами! (C)stalin(Cpp) Общие вопросы C/C++ 5 25.10.2008 17:19
работа с txt файлом ShenDy Общие вопросы C/C++ 1 08.04.2008 22:55
Работа с текстовыми TXT MAKEDON Общие вопросы Delphi 2 20.12.2007 04:30
Работа со строками txt документa Paul Общие вопросы Delphi 5 11.04.2007 12:47