Разбивает строку по позиции.
Сильно не пинать, учусь делать компоненты, а это мой первый.
Этот топик читают: Гость
Ответов: 3349
Рейтинг: 233
|
|||
карма: 1 |
| ||
файлы: 1 | strpospart.rar [3.6KB] [251] |
Google
vip
|
#1.1контекстная реклама от партнеров
|
Ответов: 16884
Рейтинг: 1239
|
|||
Ivann писал(а): Copy(str,0,position);любой учебник Pascal писал(а): Строка - это упакованый массив, компоненты которого имеют тип char и индекс имеет нижнюю границу равную 1(Будешь писать в С - там с 0) Ivann, надеюсь, это не сильно. Остальное не смотрел. |
|||
карма: 25 |
| ||
Голосовали: | Ivann |
Ответов: 3349
Рейтинг: 233
|
|||
Tad, у меня привычка, все начинать с 0
Tad писал(а): Ivann, надеюсь, это не сильно.
Остальное не смотрел. Это ты моё незнание нашел |
|||
карма: 1 |
| ||
файлы: 1 | strpospart.rar [3.6KB] [259] |
Ответов: 16884
Рейтинг: 1239
|
|||
Ivann писал(а): у меня привычка, все начинать с 0 |
|||
карма: 25 |
|
Ответов: 3349
Рейтинг: 233
|
|||
Tad, странно с 0 тоже работало
|
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Ivann, ничего странного.
В стандартной функции Copy есть строчка:
|
|||
карма: 25 |
|
Разработчик
Ответов: 4697
Рейтинг: 426
|
|||
После беглого осмотра есть следующие замечания:
1. Прототип компонента нерабочий (не найден метод doSplit). 2. Свойство Str здесь полностью лишнее, если заранее известна строка, которую надо разделять, гораздо лучше (и со стороны готовой программы, и со стороны разработчика) разделить ее по нужной позиции старым способом (с помощью мозгов). 3. Вот эта часть кода не совсем верна логически (то же самое во втором методе doPart) :
4. Неверно разбивается строка при свойстве Mode = Position, в примере твоем она не "захватывает" последнюю скобку в строке для выдачи в поток правую часть, а так же в твоем примере при том же значении св-ва Mode в onLeft в конце выдается ":", а в onRight в начале ":" - повторение символа-разделителя. Все эти ошибки - неверное определение начала и конца нужной части P.S: если не сможешь сам поправить, обращайся, подтолкну в нужном направлении |
|||
карма: 10 |
| ||
файлы: 1 | code_19169.txt [1.8KB] [377] |
Ответов: 3349
Рейтинг: 233
|
|||
Tad, ясно, спасибо тебе
|
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Ivann, вот эта строка кода, которую ты применил - тоже "защита от дурака"
|
|||
карма: 25 |
|
Разработчик
Ответов: 4697
Рейтинг: 426
|
|||
Ого, а я и не знал, что у делфи-компилятора есть такая особенность: я распаковал архив Ivann-а, установил компонент,запустил, нашел ошибку, нажал Ctrl+F на компоненте, исправил код на верный, нажимаю кнопку сохранить, иду к кнопке "Run" в схеме, запускаю - без изменений, как будто я код и не правил, потом выяснилось: я удалил файл StrPosPart.pas из папки, где лежит пример Example.sha (который я и запускал), опять жму "Run" - все работает
|
|||
карма: 10 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Assasin, интересно, почему грешишь на делфи-компилятор ? Тоже замечал такие приколы.
|
|||
карма: 25 |
|
Разработчик
Ответов: 4697
Рейтинг: 426
|
|||
Tad писал(а): Assasin, интересно, почему грешишь на делфи-компилятор А с FPC у меня все ок |
|||
карма: 10 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Assasin писал(а): потом выяснилось: я удалил файл StrPosPart.pas из папки, где лежит пример Example.sha (который я и запускал"я удалил" или "сам удалился" ? У меня сама и тихо, без вопросов, удалилась папка ElementsDelphicodeSQliteObj |
|||
карма: 25 |
|
Разработчик
Ответов: 26069
Рейтинг: 2121
|
|||
Assasin, строку компиляции надо нормальную прописывать, а не ту, которая читает файлы компонентов из папки проектов. И не причем тут компилятор, коли сами виноваты
------------ Дoбавленo в 14.29: Вот моя строка компиляции, которая всегда читает компоненты из ситемной папки пакета Windows. Просто, я попадался на эту фичу не раз и поправил строку "%fname%" "-U%upath%." -DSQLITE_OBJ -Q -$O+ "-E%opath% -DSQLITE_OBJ можно выкинуть, если не работаете с объектыми модулями SQLite |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco, вот моё
|
|||
карма: 25 |
| ||
файлы: 1 | do.png [4.5KB] [649] |