Страница 2 из 3

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

Добавлено: 15 Июнь 2017, 21:27
Yufil
Перебирать. Или сделать для поиска дополнительно обычную строку в качестве параметра. Но у тебя, похоже, не те объёмы, из-за которых стоит страдать :). Мне приходилось разбирать и преобразовывать несколько сотен HTML-файлов килобайт по 200 в кодировке UTF-32, первично разборка каждого файла шла несколько секунд, вот тут пришлось извращаться. А пару лет назад переписал (для другой задачи) на Python, используя пакет Beautiful Soup - со свистом... Кстати, для твоих данных эта конвертация на Python в худшем случае строк 10 займёт ...

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

Добавлено: 16 Июнь 2017, 3:43
Admin
Yufil писал(а): 15 Июнь 2017, 21:27Но у тебя, похоже, не те объёмы
Да. Что то я думал будет тормозить. Но пока все очень быстро работает.

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

Добавлено: 17 Июнь 2017, 8:08
Admin
Yufil писал(а): 15 Июнь 2017, 21:27Кстати, для твоих данных эта конвертация на Python в худшем случае строк 10 займёт ...
Да я начал сначала писать на PHP но что то не туда уплыл... решил на Clarion писать.

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

Добавлено: 29 Июнь 2017, 12:31
kreator
Случайно нашёл. Есть такой класс SystemStringClass, в нём есть метод Split. По описанию, вроде делает то, что просите. Правда, не нашёл его (метода) использования.

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

Добавлено: 29 Июнь 2017, 12:42
Admin
Ага, спасибо. Готовых классов в ABC море но разбираться как их использовать ... иногда проще самому.
Да это не совсем верный подход.

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

Добавлено: 29 Июнь 2017, 14:45
kreator
Плохо то, что в хелпе найти нужное нереально. Ребята худо-бедно что-то пишут, а мы не знаем. Конечно, нет ресурсов плотно изучать все изменения от билда к билду. Надежда только на хелп. Я искал что-то своё и случайно наткнулся на слово split. Вспомнил, что было недавно обсуждение. Посмотрел повнимательней - ага, есть такое дело.

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

Добавлено: 29 Июнь 2017, 14:57
Yufil
В Libsrc много сплитов. Правда, в основном имя файла сплитуют на части: диск-каталог-имяфайла.
А класс вроде интересный ....

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

Добавлено: 29 Июнь 2017, 15:25
Admin
Yufil писал(а): 29 Июнь 2017, 14:57А класс вроде интересный ....
Я бы сказал огромный функционал в нем :)
Посмотрим.

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

Добавлено: 29 Июнь 2017, 23:54
Shur
Извиняюсь, что поздновато откликаюсь.
IMHO, самым простым и оптимальным для решения первоначальной задачи было бы воспользоваться сишной функцией StrTok (прототип находится в файле CLIB.CLW, ну или в cbrowse.clw -- на выбор).

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

Добавлено: 30 Июнь 2017, 2:06
Admin
Shur писал(а): 29 Июнь 2017, 23:54сишной функцией StrTok
Спасибо. Не сишники мы. Функций не знаем :)

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

Добавлено: 30 Июнь 2017, 9:25
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

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

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

p.s. На сегодня только этот вопрос подвис. И даже бурги молчат

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

Добавлено: 30 Июнь 2017, 12:11
kreator
Admin писал(а): 30 Июнь 2017, 10:16И даже бурги молчат
Ещё бы спросили - "В SV разработчики вообще есть?" :mrgreen: .

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

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

В Python, например, деструктор объекта вообще не сработает, если на него указывает какая-либо живая ссылка. Вот когда объект и ссылки на него попадут в мусор - тогда со всем нашим удовольствием, сборщик мусора приберёт. Или есть мягкая ссылка (weakref), она действительно обнуляется при уничтожении объекта.

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

Добавлено: 30 Июнь 2017, 13:18
Admin
kreator писал(а): 30 Июнь 2017, 12:11В SV разработчики вообще есть?
Блинн, ну C10 не из воздуха же появляется :)