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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2011, 13:38   #1
hunter03
Форумчанин
 
Регистрация: 05.05.2009
Сообщений: 244
По умолчанию проблема с вырезанием подстроки

Здравствуйте, у меня такая проблема:
у меня в файле есть строка
абвг*дежз&ийк#eeee
мне нужно в 1 листбокс вставить то что до *, во второй то что после *и до &, в третий то что после & и до # и в четвертый то что после решетки
пока пытаюсь сделать так:
Код:
procedure TForm1.btn1Click(Sender: TObject);
const dm='$|';
begin
 AssignFile(F, 'правила.txt'); //открыли файл
Reset(F);
i := 0; //начало массивов
while not Eof(F) do
begin
Readln(F, s);//читаем в строку s
s := Trim(s);// освобождаемся от крайних пробелов (на всякий случай)

 for i := 1 to Length(s) do   begin
    if Pos(s[i],Dm) > 0 then  begin
      s[i]:='!';
      k := Pos('!', s);
      end;

 end ;
x[i]:=Copy(s,k-(k-1),k-1);
Delete(s, k-(k-1), k);
s := Trim(s);
      Y[i] := (s);
end;

CloseFile(f);
cbb1.Items.Add(x[i]);
cbb2.Items.Add(y[i]);
end;
я разделители меняю на "!" и вырезаю...но не могу никак понять как вырезать прально 3 и 4 подстроку...
hunter03 вне форума Ответить с цитированием
Старый 08.10.2011, 14:20   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
procedure TForm1.btn1Click(Sender: TObject);
const dm='$|';
var i,j:integer;
begin
 AssignFile(F, 'правила.txt'); //открыли файл
Reset(F);
i := 0; //начало массивов
while not Eof(F) do begin
 Readln(F, s);//читаем в строку s
 s := Trim(s);// освобождаемся от крайних пробелов (на всякий случай)
 ss:='';i:=1;j:=1;
 while (i<Length(s))and(s[i]<>'*') do inc(i); 
  ListBox1.Itemd.Add(Copy(s,j,i-j+1));j:=i+1;
 while (i<Length(s))and(s[i]<>'&') do inc(i); 
  ListBox2.Itemd.Add(Copy(s,j,i-j+1));j:=i+1;
...
 И так остальные части
end;

CloseFile(f);
cbb1.Items.Add(x[i]);
cbb2.Items.Add(y[i]);
end;
Понял идею?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.10.2011, 14:29   #3
hunter03
Форумчанин
 
Регистрация: 05.05.2009
Сообщений: 244
По умолчанию

Понятно, спасибо!!!
hunter03 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск подстроки int 20h Win Api 2 09.08.2010 20:37
выделение подстроки Rustamel Microsoft Office Excel 4 20.04.2010 05:06
Удаление подстроки (С) Айдар Помощь студентам 2 02.03.2010 08:22
строки и подстроки Work Group Помощь студентам 1 17.11.2009 15:02
Копирование подстроки Johnson Общие вопросы Delphi 5 28.01.2009 18:09