Сплит строки по пробелу или табуляции

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Сплит строки по пробелу или табуляции

Сообщение Yufil »

Перебирать. Или сделать для поиска дополнительно обычную строку в качестве параметра. Но у тебя, похоже, не те объёмы, из-за которых стоит страдать :). Мне приходилось разбирать и преобразовывать несколько сотен HTML-файлов килобайт по 200 в кодировке UTF-32, первично разборка каждого файла шла несколько секунд, вот тут пришлось извращаться. А пару лет назад переписал (для другой задачи) на Python, используя пакет Beautiful Soup - со свистом... Кстати, для твоих данных эта конвертация на Python в худшем случае строк 10 займёт ...
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сплит строки по пробелу или табуляции

Сообщение Admin »

Yufil писал(а): 15 Июнь 2017, 21:27Но у тебя, похоже, не те объёмы
Да. Что то я думал будет тормозить. Но пока все очень быстро работает.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сплит строки по пробелу или табуляции

Сообщение Admin »

Yufil писал(а): 15 Июнь 2017, 21:27Кстати, для твоих данных эта конвертация на Python в худшем случае строк 10 займёт ...
Да я начал сначала писать на PHP но что то не туда уплыл... решил на Clarion писать.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Сплит строки по пробелу или табуляции

Сообщение kreator »

Случайно нашёл. Есть такой класс SystemStringClass, в нём есть метод Split. По описанию, вроде делает то, что просите. Правда, не нашёл его (метода) использования.
We are hard at work… for you. :)
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сплит строки по пробелу или табуляции

Сообщение Admin »

Ага, спасибо. Готовых классов в ABC море но разбираться как их использовать ... иногда проще самому.
Да это не совсем верный подход.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Сплит строки по пробелу или табуляции

Сообщение kreator »

Плохо то, что в хелпе найти нужное нереально. Ребята худо-бедно что-то пишут, а мы не знаем. Конечно, нет ресурсов плотно изучать все изменения от билда к билду. Надежда только на хелп. Я искал что-то своё и случайно наткнулся на слово split. Вспомнил, что было недавно обсуждение. Посмотрел повнимательней - ага, есть такое дело.
We are hard at work… for you. :)
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Сплит строки по пробелу или табуляции

Сообщение Yufil »

В Libsrc много сплитов. Правда, в основном имя файла сплитуют на части: диск-каталог-имяфайла.
А класс вроде интересный ....
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сплит строки по пробелу или табуляции

Сообщение Admin »

Yufil писал(а): 29 Июнь 2017, 14:57А класс вроде интересный ....
Я бы сказал огромный функционал в нем :)
Посмотрим.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Сплит строки по пробелу или табуляции

Сообщение Shur »

Извиняюсь, что поздновато откликаюсь.
IMHO, самым простым и оптимальным для решения первоначальной задачи было бы воспользоваться сишной функцией StrTok (прототип находится в файле CLIB.CLW, ну или в cbrowse.clw -- на выбор).
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сплит строки по пробелу или табуляции

Сообщение Admin »

Shur писал(а): 29 Июнь 2017, 23:54сишной функцией StrTok
Спасибо. Не сишники мы. Функций не знаем :)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Shur
Ветеран
Сообщения: 384
Зарегистрирован: 02 Июль 2011, 18:49

Сплит строки по пробелу или табуляции

Сообщение Shur »

Дык это только функция сишная, а использование вполне себе кларионовское (привожу из cbrowse.clw):

Код: Выделить всё

   szSortStr = pSort

    ! Second, extract each of the Sort token
    szToken = StrTok(address(szSortStr), address(szDelim))
    loop while szToken <> ''
      TokenQ.Token = szToken
      add(TokenQ)
      szToken = StrTok(0, address(szDelim))
    end
:D
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сплит строки по пробелу или табуляции

Сообщение Admin »

Да понятно все ребят. Нашел описание и уже протестил на Кларионе. Все делает что нужно.
Я уже написал программу под которую вопросы задавал. Что то менять пока смысла нет.
Для общего развития принял все советы к вниманию.

p.s. На сегодня только этот вопрос подвис. И даже бурги молчат
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Сплит строки по пробелу или табуляции

Сообщение kreator »

Admin писал(а): 30 Июнь 2017, 10:16И даже бурги молчат
Ещё бы спросили - "В SV разработчики вообще есть?" :mrgreen: .
We are hard at work… for you. :)
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Сплит строки по пробелу или табуляции

Сообщение Yufil »

Дык, это концептуально. Если мы хотим, чтобы при уничтожении объекта ликвидировались все ссылки на оный, нужна другая семантика ссылок, в том числе счётчик ссылок, сборка мусора и т д. Ровно то же имеет место быть практически везде, где есть такие ссылки.

В Python, например, деструктор объекта вообще не сработает, если на него указывает какая-либо живая ссылка. Вот когда объект и ссылки на него попадут в мусор - тогда со всем нашим удовольствием, сборщик мусора приберёт. Или есть мягкая ссылка (weakref), она действительно обнуляется при уничтожении объекта.
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Сплит строки по пробелу или табуляции

Сообщение Admin »

kreator писал(а): 30 Июнь 2017, 12:11В SV разработчики вообще есть?
Блинн, ну C10 не из воздуха же появляется :)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Ответить