Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.05.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.007 c
15-1206972639
Сатир
2008-03-31 18:10
2008.05.11
Вопрос знатокам Винды ХР


2-1207808016
DimA
2008-04-10 10:13
2008.05.11
Почему ADOConnection не запускается с сетевого диска?


2-1207738265
Fr1K
2008-04-09 14:51
2008.05.11
Событие по нажатию


2-1208165182
pathfinder
2008-04-14 13:26
2008.05.11
Уничтожение объекта.


2-1207893241
F@T@L_Err0r
2008-04-11 09:54
2008.05.11
Сообщения виндовс





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский