не могу получить указатель на строку
Участников: 5
Страница 2 из 2
Страница 2 из 2 • 1, 2
Re: не могу получить указатель на строку
А почему не
PS: механизм указателей - одна из главных причин того, что язык Си считают запутанным, глючным и плохо портируемым. Указатели сильная штука, но злоупотреблять ими не следует.
- Код:
dim as wstring r, s
r = s
PS: механизм указателей - одна из главных причин того, что язык Си считают запутанным, глючным и плохо портируемым. Указатели сильная штука, но злоупотреблять ими не следует.
justar- Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 49
Откуда : Кишинёв, Республика Молдоа
Re: не могу получить указатель на строку
Благодарю за напоминание, оно никогда не бывает лишним.
Вопрос справедливый и требует подробного разъяснения.
Как я уже писал раньше прога у меня жутко запутанная, а я её пытаюсь систематизировать. В чём мне очень сильно помогают классы, коих у меня целая куча.
Есть у меня места, с которыми я решил разобраться "в лоб", плевав на скорость. Если я создаю переменную в классе, то деструктор должен её прибить.
А некоторые методы возвращают указатели на подстроки, а если объект к тому времени уже удалён, то указатели уже содержат адрес мусора.
В прочем немного подумав, в данном случае, я решил, что можно возвращать указатель на строки которые использует мой класс. Скорее всего я буду удалять объекты, когда уже строки будут не нужны.
Я уже сам начинаю путаться во всех ответвлениях своей проги. А в больших проектах, как обычно всплывают очень странные глюки. Даже и не поймёшь сразу, в чём здесь юмор.
Например у меня есть такой прикол, что если прогу компилить
fbc -e -ex -exx test_xml.bas
выводит результат нормально. А если же просто
fbc test_xml.bas
то она запускаеться и тутже закрываеться.
Вроде бы сейчас, тьфу-тьфу-тьфу, она у меня работает и не глючит. Думал, что уже почти дописал. Решил немного навернуть. Пришлось переделывать несколько функций. А вместо одной мелкой писать целый класс.
Ха, вот и не знаю, когда её мо жно будет считать законченной. И ведь это не полная поддержка стандарта!
Вопрос справедливый и требует подробного разъяснения.
Как я уже писал раньше прога у меня жутко запутанная, а я её пытаюсь систематизировать. В чём мне очень сильно помогают классы, коих у меня целая куча.
Есть у меня места, с которыми я решил разобраться "в лоб", плевав на скорость. Если я создаю переменную в классе, то деструктор должен её прибить.
А некоторые методы возвращают указатели на подстроки, а если объект к тому времени уже удалён, то указатели уже содержат адрес мусора.
В прочем немного подумав, в данном случае, я решил, что можно возвращать указатель на строки которые использует мой класс. Скорее всего я буду удалять объекты, когда уже строки будут не нужны.
Я уже сам начинаю путаться во всех ответвлениях своей проги. А в больших проектах, как обычно всплывают очень странные глюки. Даже и не поймёшь сразу, в чём здесь юмор.
Например у меня есть такой прикол, что если прогу компилить
fbc -e -ex -exx test_xml.bas
выводит результат нормально. А если же просто
fbc test_xml.bas
то она запускаеться и тутже закрываеться.
Вроде бы сейчас, тьфу-тьфу-тьфу, она у меня работает и не глючит. Думал, что уже почти дописал. Решил немного навернуть. Пришлось переделывать несколько функций. А вместо одной мелкой писать целый класс.
Ха, вот и не знаю, когда её мо жно будет считать законченной. И ведь это не полная поддержка стандарта!
Re: не могу получить указатель на строку
Eric-S пишет:Как я уже писал раньше прога у меня жутко запутанная, а я её пытаюсь систематизировать
И ты пытаешься ещё больше запутать её указателями?
Тем более лучше обходиться без указателей. IMHO, механизм указателей придуман как раз ради скорости и если скорость не важна, то лучше обходиться без них. Тем более - когда пишешь на Бейсике, в котром для всего есть стандартые средства.Есть у меня места, с которыми я решил разобраться "в лоб", плевав на скорость.
Видно ты как то очень хитро ON ERROR применяешь... А GDB что во втором случае говорит?Например у меня есть такой прикол, что если прогу компилить
fbc -e -ex -exx test_xml.bas
выводит результат нормально. А если же просто
fbc test_xml.bas
то она запускаеться и тутже закрываеться.
justar- Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 49
Откуда : Кишинёв, Республика Молдоа
Re: не могу получить указатель на строку
Хочеться верить, что применяя указатели я всё же экономлю память и ускоряю обработку.
Да, бэйсик имеет неплохой набор базовых функций для работы со строками, хотя с php и java ему не тягаться. Но ведь fb это компилятор, а не интерпретатор.
fb работает со строками string в ascii, а мне нужен unicode, а значит wstring. Отсюда и ещё одна причина постоянного использования указателей.
Я как-то пытался провернуть следующий
Я вообще-то думал о создании своей библиотеки для работы с unicode строками, типа как vb6. Чтобы были дескрипторы и куча всяких функциий. Точнее даже как класс string в java. Но потом решил, что обойдусь и так.
Хотя задумка-то неплохая! А можно вообще взять jvm и пользовать класс string, но думаю, что это будут ТОРМОЗА!
Про обработку ошибок. Хм, скорее всего не из-за on error, а из-за того что я требую в функции вывод всякой дополнительной инфы, типа erfn и ernm. Ещё не тестил, но подозреваю, что когда я отключу файл с обработчиком ошибок, ситуация измениться.
А вообще было бы очень неплохо если кто-нибудь хороший рассказал об условной компиляции. Тогда бы мой обработчик можно было красиво включать и выключать не меняя код программы.
Да, бэйсик имеет неплохой набор базовых функций для работы со строками, хотя с php и java ему не тягаться. Но ведь fb это компилятор, а не интерпретатор.
fb работает со строками string в ascii, а мне нужен unicode, а значит wstring. Отсюда и ещё одна причина постоянного использования указателей.
Я как-то пытался провернуть следующий
- Код:
dim l as integer = 20
dim ws as wstring *l
- Код:
dim l as integer = 20
dim ws as wstring ptr
ws = allocate( l * len(wstring) )
Я вообще-то думал о создании своей библиотеки для работы с unicode строками, типа как vb6. Чтобы были дескрипторы и куча всяких функциий. Точнее даже как класс string в java. Но потом решил, что обойдусь и так.
Хотя задумка-то неплохая! А можно вообще взять jvm и пользовать класс string, но думаю, что это будут ТОРМОЗА!
Про обработку ошибок. Хм, скорее всего не из-за on error, а из-за того что я требую в функции вывод всякой дополнительной инфы, типа erfn и ernm. Ещё не тестил, но подозреваю, что когда я отключу файл с обработчиком ошибок, ситуация измениться.
А вообще было бы очень неплохо если кто-нибудь хороший рассказал об условной компиляции. Тогда бы мой обработчик можно было красиво включать и выключать не меняя код программы.
Re: не могу получить указатель на строку
В мануале написано, что fb полноценно поддерживает Unicode строки... У меня, конечно, не особые лады с английским, но я понял, что все строковые функции с Unicode работают... Или это не так?Eric-S пишет: fb работает со строками string в ascii, а мне нужен unicode, а значит wstring. Отсюда и ещё одна причина постоянного использования указателей.
Действительно неплохая - всё равно сделай, даже если сам не будешь пользоваться, другим может пригодиться.Я вообще-то думал о создании своей библиотеки для работы с unicode строками, типа как vb6. Чтобы были дескрипторы и куча всяких функциий. Точнее даже как класс string в java. Но потом решил, что обойдусь и так. Хотя задумка-то неплохая!
justar- Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 49
Откуда : Кишинёв, Республика Молдоа
Re: не могу получить указатель на строку
Да, fb поддерживает unicode строки, т.е. wstring.
Но они точно такие же как zstring.
А вот visual basic работает именно с unicode строками, у него они все такие.
Про библиотеку, о которой я писал выше, то это альтернативная реализация функций, в стиле java или php.
Например вместо бэйсиковских left, right, mid одна функция subStr.
Причём только для юникода, ascii строки поддерживать не буду.
Но тут стоит задуматься над другим вопросом, состыковки с другими языками и в первую очередь java. Боюсь мою библиотеку можно будет использовать только для внутреннего употребления, так как формат дескрипторов совсем другой. А во вне только wstring или zstring.
Но они точно такие же как zstring.
А вот visual basic работает именно с unicode строками, у него они все такие.
Про библиотеку, о которой я писал выше, то это альтернативная реализация функций, в стиле java или php.
Например вместо бэйсиковских left, right, mid одна функция subStr.
Причём только для юникода, ascii строки поддерживать не буду.
Но тут стоит задуматься над другим вопросом, состыковки с другими языками и в первую очередь java. Боюсь мою библиотеку можно будет использовать только для внутреннего употребления, так как формат дескрипторов совсем другой. А во вне только wstring или zstring.
Страница 2 из 2 • 1, 2
Страница 2 из 2
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|