Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.07.2008, 10:00
MSD MSD вне форума
Прохожий
 
Регистрация: 29.03.2008
Сообщения: 35
Репутация: 10
Печаль Работа с текстовым файлом

подскажите пожалуйста мастера как можно в текстовом файле оставить нужные куски текста? Допустим есть текстовый файл с содежимым:
Саша 47 ....
какой-то текст
НатаШа 56....
дальше не нужный текст
Саша 78....
какой-то текст
НатаШа 71.....
нужно чтобы осталось
Саша 47 ....
какой-то текст
НатаШа 56....
Саша 78....
какой-то текст
НатаШа 71.....
т.е. нужно чтобы остались только нужные куски. Саша и Наташа в одной строке не попадаются. Бьюсь ни как не могу додуматься как сделать. Подскажите с примером плиз. Спсибо.
Ответить с цитированием
  #2  
Старый 27.07.2008, 12:00
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Код:
var
i: Integer;
...
with TStringList.Create do
begin
LoadFromFile('f.txt');
for i:=0 to Count - 1 do
if not ((Pos('САША', AnsiUpperCase(Strings[i])) <> 0) or (Pos('НАТАША', AnsiUpperCase(Strings[i])) <> 0)) then Delete(i);
SaveToFile('f.txt');
Free;
end;
В условии мог ошибиться.
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #3  
Старый 27.07.2008, 12:25
MSD MSD вне форума
Прохожий
 
Регистрация: 29.03.2008
Сообщения: 35
Репутация: 10
По умолчанию Ошибку выдает.. (

Выдает ошибку
Project Project1.exe raised exception class EStringListError with message 'List index out of bounds (1020)'. Progress stopped. Use Step or Run to continue. Что такое?
Ответить с цитированием
  #4  
Старый 27.07.2008, 12:37
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Не знаю почему так получилось
Код:
var
  i: Integer;
  f: Array of String;
  tmp: String;
begin
  AssignFile(Input, 'f.txt');
  Reset(Input);
  while not Eof(Input) do
  begin
    Readln(Input, tmp);
    if (Pos('САША', AnsiUpperCase(tmp)) <> 0) or (Pos('НАТАША', AnsiUpperCase(tmp)) <> 0) then
    begin
      SetLength(f, Length(f) + 1);
      f[High(f)]:=tmp;
    end;
  end;
  CloseFile(Input);
  Rewrite(Input);
  for i:=0 to Length(f) - 1 do
  Writeln(Input, f[i]);
  CloseFile(Input);
end;
Проверил, работает.
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #5  
Старый 27.07.2008, 12:50
MSD MSD вне форума
Прохожий
 
Регистрация: 29.03.2008
Сообщения: 35
Репутация: 10
По умолчанию Не то....

В файле остается только Саша и Наташа, а как же текст между ними , нужно чтобы текст между ними тоже оставался...
Ответить с цитированием
  #6  
Старый 27.07.2008, 12:53
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Значит я не так понял условие, а что именно должно остаться?
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #7  
Старый 23.08.2008, 15:56
oleg87 oleg87 вне форума
Прохожий
 
Регистрация: 23.08.2008
Сообщения: 1
Репутация: 10
По умолчанию

Мне дан текстовый файл с описанием переменной f, количество переменных в файле заранее не известно.

>view f=0784
07/24/08_10:24:22 rty
### view subd start ###
# basic information #
f=0784
et=8974
sub_typ=analog lcls=indv chrg_cls=ama chrg_an=0 an=0
bnw=com tpad=0.0 rpad=-6.0 rc_org=1 rc_trm=0
chrg_ccls=nctl lctl=nctl
st=trmv
# service information #
sc=clip clip_typ=p
//total=1

>view f=3698

07/24/08_09:36:41 rty
### view subd start ###
# basic information #
f=0047
et=3698
sub_typ=analog lcls=indv chrg_cls=ama chrg_an=0 an=0
bnw=com tpad=0.0 rpad=-6.0 rc_org=1 rc_trm=0
chrg_ccls=nctl lctl=nctl
st=trmv
//total=1


В общем виде
>view f=.... параметры......... //total=1


Нужно в зависимости от параметров f вывести в новый файл инструкции последовательно для каждой переменной содержащие ее значение.

В общем виде для первой записи т.к sc=clip Нужно вывести в новый файл
can f=0784 sc=clip
reg f=0784 st_ope=trmv
can f=3698 sc=cw

где f=0784 значение функции
can sc=clip действия

и так для каждой f

Пожалуйста, помогите!
Ответить с цитированием
  #8  
Старый 08.09.2008, 09:57
DSL88 DSL88 вне форума
Новичок
 
Регистрация: 08.09.2008
Адрес: Пермь
Сообщения: 51
Репутация: 10
По умолчанию

Ничего не понял из твоего объяснения
__________________
Жизнь - игра: сюжет фигня... Зато какая графика!!!
Ответить с цитированием
  #9  
Старый 21.03.2009, 11:29
MSD MSD вне форума
Прохожий
 
Регистрация: 29.03.2008
Сообщения: 35
Репутация: 10
Радость Мастера помогите с копированием пожалуйста

Здравствуйте мастера. Подсткажите пожалуйста возможно ли скопировать файлы по дате? К примеру на форме есть компонента DateTimePicker и кнопка копировать. Выбираем дату в DateTimePicker, нажимаем копировать и файлы к примеру из папки C:\1\*.cm копируются (при этом у файлов меняется расширение) в папку D:\2\*.txt. Возможно ли это? Спасибо большое за ответы.
Ответить с цитированием
  #10  
Старый 21.03.2009, 11:29
MSD MSD вне форума
Прохожий
 
Регистрация: 29.03.2008
Сообщения: 35
Репутация: 10
Радость

Здравствуйте мастера. Подсткажите пожалуйста возможно ли скопировать файлы по дате? К примеру на форме есть компонента DateTimePicker и кнопка копировать. Выбираем дату в DateTimePicker, нажимаем копировать и файлы к примеру из папки C:\1\*.cm копируются (при этом у файлов меняется расширение) в папку D:\2\*.txt. Возможно ли это? Спасибо большое за ответы.
Ответить с цитированием
  #11  
Старый 24.03.2009, 08:59
MSD MSD вне форума
Прохожий
 
Регистрация: 29.03.2008
Сообщения: 35
Репутация: 10
По умолчанию

Цитата:
Сообщение от MSD
Здравствуйте мастера. Подсткажите пожалуйста возможно ли скопировать файлы по дате? К примеру на форме есть компонента DateTimePicker и кнопка копировать. Выбираем дату в DateTimePicker, нажимаем копировать и файлы к примеру из папки C:\1\*.cm копируются (при этом у файлов меняется расширение) в папку D:\2\*.txt. Возможно ли это? Спасибо большое за ответы.


Что никто не знает как это сделать??
Ответить с цитированием
  #12  
Старый 29.04.2009, 09:29
MSD MSD вне форума
Прохожий
 
Регистрация: 29.03.2008
Сообщения: 35
Репутация: 10
Радость Помогите пожалуйста исправить код...)

мастера подсткажите пожалуйста это пример заменяет определенные значения на другие, но вот в чем проблема условие может быть только одно..... как сделать 3 и более условий для замены? Спасибо.
Код:
var
sl: TStringList;
begin
sl := TStringList.Create;
if fileexists ('C:\1.txt')then sl.LoadFromFile('C:\1.txt');
for i := 0 to sl.Count - 1 do
  sl[i] := StringReplace(sl[i], 'г:', '', [rfReplaceAll]);
sl.SaveToFile('C:\1.txt');
sl.Free;
Admin: Пользуемся тегами, иначе последуют санкции!

Последний раз редактировалось Admin, 29.04.2009 в 10:34.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:12.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter