Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.11;
Скачать: CL | DM;

Вниз

вырезать вставлять   Найти похожие ветки 

 
mr1Andersen   (2008-03-17 23:48) [0]

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

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-это первая)

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


 
KilkennyCat ©   (2008-03-18 01:01) [1]

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


 
KilkennyCat ©   (2008-03-18 01:05) [2]

хотя нет, не пойдет. точнее, может лишнего наделать.
проще всего:
вырезание:
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:12) [3]

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


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

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


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


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

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

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


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


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

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


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

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


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


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

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


 
KilkennyCat ©   (2008-03-18 01:30) [9]

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


 
KilkennyCat ©   (2008-03-18 01:31) [10]

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

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


 
{RASkov} ©   (2008-03-18 01:32) [11]

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

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


> [0] mr1Andersen   (17.03.08 23:48)

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


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

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

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

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

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

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


 
KilkennyCat ©   (2008-03-18 01:42) [13]

отлично.


 
{RASkov} ©   (2008-03-18 01:46) [14]

> [12] mr1Andersen   (18.03.08 01:39)

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


 
KilkennyCat ©   (2008-03-18 01:50) [15]

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

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


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

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


 
Германн ©   (2008-03-18 01:51) [17]


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

Не стараюсь "выпячиваться", но рекомендую всё-же первым делом читать то, что  в [8] указано :)


 
{RASkov} ©   (2008-03-18 01:52) [18]

> [15] KilkennyCat ©   (18.03.08 01:50)
> ты ж его зациклил бесконечно

Ну будет хоть кто-то спец по строкам :)

> не указав условие выхода

А вот когда станет спецом по строкам, тогда сможет вырезать мой пост [14] и выйти)


 
{RASkov} ©   (2008-03-18 01:54) [19]

> [17] Германн ©   (18.03.08 01:51)

[8] - это как подпрограмма в данной ветке... т.е. нормально все)


 
mr1Andersen   (2008-03-18 01:54) [20]

та же задача:
есть текст: «Таня»
есть S2.TXT, в котором есть текст:

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

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

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

При этом на перед ни известно какой текст записан в S2.TXT
Нужно просто ВСТАВИТЬ «Таня» в конкретную (заданную) позицию.


 
{RASkov} ©   (2008-03-18 01:55) [21]

Черт.... он вырвался :(


 
KilkennyCat ©   (2008-03-18 01:57) [22]

> [21] {RASkov} ©   (18.03.08 01:55)

Ну, наверное, про циклы там еще не проходили.


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


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

Ну естественно суть вопроса измениться не может в принципе.
"Мне нужно выполнить что-то типа [12].
Я надыбал в И-нете, что-то типа [0].
Как мне изменить что-то типа [0], на что-то типа [12]?
Но изучать предмет (я не хочу/мне лень/мне некогда! отстаньте вы все!) "! Дайте код!


 
KilkennyCat ©   (2008-03-18 01:59) [24]

А ведь потом Германн начнет упрекать меня за пьянство....


 
Германн ©   (2008-03-18 02:08) [25]


> KilkennyCat ©   (18.03.08 01:59) [24]
>
> А ведь потом Германн начнет упрекать меня за пьянство...
> .
>

Кончай флудить! Я ещё никого и никогда не упрекал за пьянство без причины.
Или ты ответил не в ту ветку, в которую хотел? :)


 
KilkennyCat ©   (2008-03-18 02:28) [26]

Ну вот, я же говорил...


 
Плохиш ©   (2008-03-18 11:11) [27]


> KilkennyCat ©   (18.03.08 01:59) [24]

А ты уже прекратил есть маленьких детей?


 
mr1Andersen   (2008-03-24 23:53) [28]

Если применить к [12] такой код:
   Lst[1] := Copy(Lst[1], 7, length(Lst[1]));
то получается, вот это:

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

Как мне удалять ни с первой позиции, а с 12-й?


 
Германн ©   (2008-03-25 00:42) [29]


> Как мне удалять не с первой позиции, а с 12-й?

Урок английского.
"Удалять" - "Delete".
"Копировать" - "Copy".


 
mr1Andersen   (2008-04-07 21:03) [30]


> Германн ©   (25.03.08 00:42) [29]


Ок, если ты знаешь, напиши одну строчку как удалить через Delete
Lst[1] := Delete(…


 
Германн ©   (2008-04-08 14:23) [31]


> Lst[1] := Delete(…

За две недели ты так и нашел желания посмотреть справку.


 
Virgo_Style ©   (2008-04-08 16:48) [32]

Германн ©   (08.04.08 14:23) [31]
справку


всплывающей подсказки более чем достаточно


 
mr1Andersen   (2008-04-10 01:42) [33]

Неужели Вы думаете что мне легче ждать две недели и сломяк справку посмотреть!
Если я применяю Lst[1] := Delete(Lst[1], 2, 1); выкидывает:  
[Error] Creck.pas(68): Constant object cannot be passed as var parameter
[Fatal Error] CR.dpr(5): Could not compile used unit "Creck.pas"


 
Германн ©   (2008-04-10 02:00) [34]


> mr1Andersen   (10.04.08 01:42) [33]
>
> Неужели Вы думаете что мне легче ждать две недели и сломяк
> справку посмотреть!
> Если я применяю Lst[1] := Delete(Lst[1], 2, 1); выкидывает:
>  
> [Error] Creck.pas(68): Constant object cannot be passed
> as var parameter
> [Fatal Error] CR.dpr(5): Could not compile used unit "Creck.
> pas"
>

Можешь не верить, но мы так и думаем, что тебе "легче ждать две недели и сломяк  справку посмотреть!"
Если бы ты посмотрел справку, то никак бы не употребил процедуру Delete в выражении.


 
korneley ©   (2008-04-10 02:21) [35]


> mr1Andersen   (10.04.08 01:42) [33]

А вот я не понял (тупой просто), чем "сломяк" от "впадлу" оличается? И зачем его ждать две недели? Ежели он сам, по-идее, на первой пришёл.


 
{RASkov} ©   (2008-04-10 09:22) [36]

Есть же упертые люди..... будут до последнего сидеть и ждать ответа на форуме, но в справку им смотреть "сломяк" т.е. "впадлу"...
Тем более здесь и справка-то не нужна, все ответы имеются в кодекомлишэн в хинтах, вокруг да около - нужно всего лишь иметь чуточку мозга...



Страницы: 1 вся ветка

Текущий архив: 2008.05.11;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.023 c
2-1207926538
Снежинка
2008-04-11 19:08
2008.05.11
Запрос


15-1206554472
@!!ex
2008-03-26 21:01
2008.05.11
Софт для работы с GSM модемом


2-1208010960
assassin8899
2008-04-12 18:36
2008.05.11
Как осуществить поиск записи в DBGrid


2-1208152850
lewka-serdceed
2008-04-14 10:00
2008.05.11
ComboBox в ячейке StringGrid


2-1207991462
Alex8
2008-04-12 13:11
2008.05.11
Table