![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| andrey_post |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 23.12.2003 Где: Екатеринбург Репутация: нет Всего: нет |
Передо мной строит такая задача. Есть тектовой файл, его структура вот такая:
:15 число: 456774 :30 число: 20040121 :32 число: 480983409 Мне нужно искать в файле строки ":15", ":30", ":32" и из каждой строки после второго двоеточия вытягивать число в какую-нибудь переменную, а затем после этих действий в поле :15: записать после чисел слово "ОКЕЙ" и сохранить файл. Пока я использую Memo:
У меня вытягивается вся строка... Помогите плиз советом!!! --------------------
И что бы там не происходило, не стоит воспринимать жизнь слишком всерьёз, всё равно нам из неё живыми не выбраться!!! |
|||
|
||||
| Illusion Dolphin |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 36 Всего: 63 |
функция copy(s:string; begin_char_number, count_of_chars:integer);
пример: есть строка var s,s1:string; s:="1234567890"; s1:=copy(s,3,4); //s1="3456" -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
| andrey_post |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 23.12.2003 Где: Екатеринбург Репутация: нет Всего: нет |
Про функцию copy я в курсе, до дело в том что я не знаю какое количество символов будет стоять после второго двоеточия в строке, там модет быть и 3 символа, и 30 символов.
Так то эту функцию можно и так написать:
но смысла я не вижу... к примеру, программе необходимо в файле или в Memo1 найти строку по шаблону ":15", скопировать в переменную все что идет после второго двоеточия, т.е. :15 TEXT: XXXXXXX, т.е. все Х. А после этого добавить после ХХХХХХ в этой строчке слово OKEY. Пример: Имеем строчку: :15 TEXT: 345345600 копируем 345345600 в переменную с переводом StrToInt(), затем после цифр добавляем слово OKEY и сохраняем файл. Строкча должна получится такой: :15 TEXT: 345345600 OKEY --------------------
И что бы там не происходило, не стоит воспринимать жизнь слишком всерьёз, всё равно нам из неё живыми не выбраться!!! |
|||
|
||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
МОжно копировать с 10-го до length(s)-10
-------------------- --- |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
удаляешь певый символ Delete (s, 1, 1);
получаешь первое число s1 := Copy (s, 1, Pos (' ', s) - 1); удаляешь пробел Delete (s, 1, 1) получаешь второе число s2 := Copy (s, 1, Pos (':', s) - 1); удаляешь двоеточие Delete (s, 1, 1) остаётся третье число s3 := s; дальше делаешь с ними вмеми чего хочешь. -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
ты же можешь его определить, твой число всегда находится между первым пробелом и вторым двоеточием. а чтобы первое двоеточие не мешалось, его надо просто убить. тогда весь код вообще две строчки: Delete (s, 1, 1); s2 := Copy (s, Pos (' ', s) + 1, Pos (':', s) - Pos (' ', s)); Это сообщение отредактировал(а) x77 - 21.1.2004, 11:58 -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| 78125 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 198 Регистрация: 20.1.2003 Где: Санкт-Петербург Репутация: нет Всего: нет |
Дак число будет располагаться между ":" и последним символом, те length. --------------------
купим подпись |
|||
|
||||
| andrey_post |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 23.12.2003 Где: Екатеринбург Репутация: нет Всего: нет |
Ура!!! Все получилось! только надо до конца довести,
вообще без понятия как слово OKEY дописать. Вижу два варианта: Или определить конец строки в Memo1 и дописать туда программно, а потом программно сохранить или переписывать строки, хотя переписывать не хотелось бы. как программно добавить в конец активной строки в Memo1 слово?. --------------------
И что бы там не происходило, не стоит воспринимать жизнь слишком всерьёз, всё равно нам из неё живыми не выбраться!!! |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
что значит "активной"? для любой i-той строки так:
Lines [i] := Lines [i] + 'OKEY'; для строки, на которой сейчас стоит курсор: SelText := 'OKEY'; -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| andrey_post |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 23.12.2003 Где: Екатеринбург Репутация: нет Всего: нет |
Ок! Спасибо большое!!! Все получилось!!!
--------------------
И что бы там не происходило, не стоит воспринимать жизнь слишком всерьёз, всё равно нам из неё живыми не выбраться!!! |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |