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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2013, 17:49   #1
sven4ik
 
Регистрация: 07.02.2013
Сообщений: 8
Восклицание tstringlist

1.В текстовом файле(выбирает пользователь) найти кол-во строк,начинающихся со знака !.используя свойства и методы класса TStringList
2.Переписать содержимое текстового файла(выбирает пользователь) в новый текстовый файл(выбирает пользователь),заменяя точками запятыми,используя свойства и методы класса TStringList
sven4ik вне форума Ответить с цитированием
Старый 29.05.2013, 19:42   #2
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от sven4ik Посмотреть сообщение
1.В текстовом файле(выбирает пользователь) найти кол-во строк,начинающихся со знака !.используя свойства и методы класса TStringList
2.Переписать содержимое текстового файла(выбирает пользователь) в новый текстовый файл(выбирает пользователь),заменяя точками запятыми,используя свойства и методы класса TStringList
1.
Код:
var
e: TStringList;
f1: TextFile;
T: String;
i: integer;
l: integer;
begin
e:= TStringList.Create;
if OpenDialog1.Execute then 
begin
AssignFile(f1,OpenDialog1.FileName);
Rewrite(f1);
try 
Read(f1, T);
e.Add(T);
finally 
closefile(f1);
end;
for i:=0 To e.Count Do 
begin
T:=e.Strings[i];
if t[1]='!' then l:=l+1;
end;
ShowMessage('Количество строк:' + inttostr(l));
end;
FreeandNil(e);
end;
2.
Код:
var
e: TStringList;
T,t1: String; 
i: integer; 
y: integer;
begin
e:= TStringList.Create;
if OpenDialog1.Execute then 
begin
e.LoadFromFile(OpenDialog1.FileName);
for i:=0 To e.Count Do 
begin
t1:=e.Strings[i];
for y:=1 To Length(t1) Do 
begin
if t1[y]=',' then t[y]:='.';
end;
e.Strings[i]:=t1;
end;
if SaveDialog1.Execute then 
e.SaveToFile(SaveDialog1.FileName);
end;
FreeandNil(e);
end;
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 04.06.2013, 13:03   #3
LeGenDik
Новичок
Джуниор
 
Регистрация: 04.06.2013
Сообщений: 1
По умолчанию А так попроще будет :-)

const
T: String = '!';
var
e: TStringList;
f1: string;
i: integer;
l: integer;
begin
l:=0;
e:=TStringList.Create;
if OpenDialog1.Execute then
begin
e.LoadFromFile(f1);
end;
for i := 0 to e.Count - 1 do
if Pos(T,e[i])<>0 then inc(l);
ShowMessage('Количество строк:' + IntToStr(l));
e.Free;
end;

Последний раз редактировалось LeGenDik; 04.06.2013 в 13:08.
LeGenDik вне форума Ответить с цитированием
Старый 04.06.2013, 14:01   #4
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Вот тебе на первую задачу полный код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  sl  : TStringList;
  od  : TOpenDialog;
  i   : Integer;
  s   : string;
  cnt : Word; // Кол-во строк
begin
  od := TOpenDialog.Create(self);
  od.Filter := 'Текстовые файлы (*.txt)|*.txt';
  if od.Execute then
    begin
      sl := TStringList.Create;
      sl.LoadFromFile(od.FileName);
      cnt := 0;
      for i := 0 to sl.Count - 1 do
        begin
          s := sl.Strings[i];
          if Length(s) > 0 then
            begin
              if s[1] = '!' then
                inc (cnt);
            end;
        end;
      sl.Free;
      ShowMessage ('Кол-во строк с !: ' + IntToStr (cnt));
    end;
  od.Free;
end;
А вот на вторую:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  sl  : TStringList;
  od  : TOpenDialog;
  sd  : TSaveDialog;
  i   : Integer;
begin
  od := TOpenDialog.Create(self);
  od.Filter := 'Текстовые файлы (*.txt)|*.txt';
  if od.Execute then
    begin
      sl := TStringList.Create;
      sl.LoadFromFile(od.FileName);
      for i := 0 to sl.Count - 1 do
        begin
          sl.Strings[i] := StringReplace(sl.Strings[i], '.', ',', [rfReplaceAll]);
        end;
      sd := TSaveDialog.Create(self);
      sd.Filter := 'Текстовые файлы (*.txt)|*.txt';
      sd.DefaultExt := 'txt';
      sd.Options := [ofOverwritePrompt];
      if sd.Execute then
        sl.SaveToFile(sd.FileName);
      sl.Free;
      sd.Free;
    end;
  od.Free;
end;

Последний раз редактировалось FaTaL; 04.06.2013 в 14:04.
FaTaL вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запись в TStringList NewLamer&Programer Общие вопросы Delphi 20 02.02.2013 00:02
TStringList vasyaRyzhyi Общие вопросы Delphi 0 07.03.2011 11:01
TStringList adr Общие вопросы Delphi 0 05.11.2010 18:29
TStringList nimf Общие вопросы Delphi 5 15.11.2007 14:44