Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

вырезать вставлять [D7, XP]


Страницы:   1 2

mr1Andersen ©   (2008-03-17 23:48:00) 

Есть такой код:

procedure TForm1.Button3Click(Sender: TObject);
Var
S : String;
Lst: TStrings;
begin
Lst:=TStringList.Create;
Lst.LoadFromFile('s2.txt');
S:=Copy(Lst[2], 5, 9);
ShowMessage(S);
Lst.Free;
end;

Которым можно скопировать с ( S2.TXT ) 9 символов начиняя с 5-го, при этом с 3-тей строчки (0-это первая)

Вопрос: Как вырезать и как вставлять?


mr1Andersen   (2008-03-18 01:51:00) [21]

Это к примеру (mr1Andersen   (18.03.08 01:39) [12])
Суть вопроса ни меняется


KilkennyCat   (2008-03-18 01:50:00) [22]

> [14] {RASkov} ©   (18.03.08 01:46)

ты ж его зациклил бесконечно, не указав условие выхода :)


{RASkov}   (2008-03-18 01:46:00) [23]

> [12] mr1Andersen   (18.03.08 01:39)

Читай ветку с начала)


KilkennyCat   (2008-03-18 01:42:00) [24]

отлично.


mr1Andersen   (2008-03-18 01:39:00) [25]

чтобы было понятнее:
есть S2.TXT, в котором есть текст:

сфере средств разработки
сегодня объявила о выпус
ке серии продуктов Delphi

нужно по нажатию на Button3, иметь в S2.TXT, такой текст:

сфере средств разработки
сегодня объя выпус
ке серии продуктов Delphi

При этом на перед ни известно какой текст записан в S2.TXT
Нужно просто удалить с текста пару букв с конкретной (заданной) позиции.


{RASkov}   (2008-03-18 01:32:00) [26]

> P.S. Хотя "вырезание" - это Copy+Delete.

Если "вырезание" без последующего "вставления", что помоему и нужно автору, то достаточно System.Delete() :)


> [0] mr1Andersen   (17.03.08 23:48)

Изучай Copy, Insert, Delete + F1. Все их уже здесь озвучили. Так же есть стандартный модуль StrUtils.pas и не стандартных полно, например RxStrUtils - для работы со строками.... много интересного найдешь в них.


KilkennyCat   (2008-03-18 01:31:00) [27]

> [5] Германн ©   (18.03.08 01:23)

хм... а я и непомню уже... в принципе, через копи тоже можно че угодно сотворить :)


KilkennyCat   (2008-03-18 01:30:00) [28]

О, это очень сложно...
Lst[24] := Copy(Lst[24], 110, 9) + Copy(Lst[24], 120, length(Lst[24]) - 120); (точность +-1 символ, сами думайте, и проверку делайте).
Lst.SaveToFile('S2.TXT');
а вот как закрыть неоткрытое - не знаю.
А вообще, формулируйте хотя бы задачу точнее, мож у вас там и нет 119 символов, мож только 111 и остальные 8 с другой строки должны удаляться... и че непонятного было в предыдущих ответах? Или в справке?


Германн   (2008-03-18 01:28:00) [29]


> потом закрыть и сохранить S2.TXT

О! А тут ещё и это. Тогда читать книжки и конспекты. (Последние можно одолжить у товарищей, если хоть кто-то из них посещал занятия).


mr1Andersen   (2008-03-18 01:27:00) [30]

Это понятно, но как мне применить Insert и Delete к конкретной позиции


Германн   (2008-03-18 01:25:00) [31]


> mr1Andersen   (18.03.08 01:21) [4]
>
> Ну и как мне например с 25 строчки 110 символа вырезать
> 9 символов, потом закрыть и сохранить S2.TXT
>

Сначала позаботься о грамматике в вопросе. А то непонятно что, откуда и скоко отрезать.


Германн   (2008-03-18 01:23:00) [32]


> KilkennyCat ©   (18.03.08 01:12) [3]
>
> да, учитывая многострочность

А если "не учитывая многострочность", то есть тоже самое по написанию. Insert и Delete. Токо это уже не методы TSringList, а процедуры из модуля System.

P.S. Хотя "вырезание" - это Copy+Delete.


mr1Andersen   (2008-03-18 01:21:00) [33]

Ну и как мне например с 25 строчки 110 символа вырезать 9 символов, потом закрыть и сохранить S2.TXT


KilkennyCat   (2008-03-18 01:12:00) [34]

да, учитывая многострочность, надеюсь, это не имелось ввиду? если имелось, то Tstringlist имеет procedure Insert(Index: Integer; const S: string) procedure Delete(Index: Integer) ;


KilkennyCat   (2008-03-18 01:05:00) [35]

хотя нет, не пойдет. точнее, может лишнего наделать.
проще всего:
вырезание:
Snew := Copy(Sold, 1, 3) + Copy(Sold, 5, 4);
вставляние:
Snew := Copy(Sold, 1, 3) + 'tralala' + Copy(Sold, 3, 8);
последнее количество можно определить автоматически, используя Length()


KilkennyCat   (2008-03-18 01:01:00) [36]

AnsiStringReplace или как-то похоже звучит.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо