Page 1 of 1

string.obj

Posted: Thu Nov 26, 2015 3:29 pm
by paulcodeman
Библиотека позволяет выполнять такие операции как:
  • [*]Получение расширения файла ф-ция

    Code: Select all

    string.extension(string)
    [/size]Из строки в виде char *text = "/sys/test.txt" возвращает смещение text+=10; т.е. => txt
    [*]Копирование символов ф-ция

    Code: Select all

    string.cpy(char *txt1,char *txt2)
    [/size]Копирует массив символов в буфер txt1 из txt2.
    [*]"Склеивание" текста ф-ция

    Code: Select all

    string.cat(char *txt1,char *txt2)
    [/size]склеивает txt1 с txt2.
    [*]В нижний регистр ф-ция

    Code: Select all

    string.lower(char *txt)
    [/size]Преобразует из верхнего в нижний регистр.
    [*]В верхний регистр ф-ция

    Code: Select all

    string.upper(char *txt)
    [/size]Преобразует из нижнего в верхний регистр.
    [*]Получение длины строки ф-ция

    Code: Select all

    string.len(char *txt)
    [/size]Возвращает длину строки, завершающий нулевой символ.
Скачать последнюю версию

Re: string.obj

Posted: Thu Nov 26, 2015 3:55 pm
by Ray
Вместо не относящегося к работе со строками никоим образом string.extension лучше стандартный strrchr ну и strchr в пару. Да и другие функции можно было бы стандартно назвать, а то писать такие длинные наименования 100 раз запаришься.

Re: string.obj

Posted: Thu Nov 26, 2015 4:15 pm
by e-andrew
Ну имхо string.extension место в другой либе (fs, да). Ну названия необычные, да) Я бы назвал их copy, concat, downcase, upcase, length на манер Ruby::String (у руби вообще топовые имена функций, только из-за этого все хочу на Rails перейте) http://ruby-doc.org/core-2.2.0/String.html .

А вообще спасибо, пойду переделывать все свои приложения.

Re: string.obj

Posted: Thu Nov 26, 2015 4:19 pm
by paulcodeman
e-andrew wrote:Ну имхо string.extension место в другой либе (fs, да). Ну названия необычные, да) Я бы назвал их copy, concat, downcase, upcase, length на манер Ruby::String (у руби вообще топовые имена функций, только из-за этого все хочу на Rails перейте) http://ruby-doc.org/core-2.2.0/String.html .

А вообще спасибо, пойду переделывать все свои приложения.
тогда названия же большие будут, Ray же лень писать xD

Re: string.obj

Posted: Thu Nov 26, 2015 4:32 pm
by Ray
Да лень каждый раз набирать string. перед каждой функцией и поверь, что будет лень не только мне. Почему бы не использовать стандартные сишные названия для строковых функций? Или ты хочешь что-то вроде неймспейсов или пакетов жабы? Так там даже специальный механизм есть чтоб не мучиться using/import. А в dll-ке ты такое можешь?

Re: string.obj

Posted: Thu Nov 26, 2015 4:41 pm
by paulcodeman
Ray wrote:Да лень каждый раз набирать string. перед каждой функцией и поверь, что будет лень не только мне. Почему бы не использовать стандартные сишные названия для строковых функций? Или ты хочешь что-то вроде неймспейсов или пакетов жабы? Так там даже специальный механизм есть чтоб не мучиться using/import. А в dll-ке ты такое можешь?
так library.obj загружает в массив указатели. Их один раз получаешь уже на свои короткие (названия) ф-ций. Например в Си:

Code: Select all

void (*stdcall strcpy)(char *,char *);
void lib_init(void)
{
  strcpy = library.get("string.cpy");
}
void main()
{
  library.load("/sys/lib/string.obj");
  lib_init();
  char *txt1 = malloc(100);
  char *txt2 = "test";
  strcpy(txt1,txt2);
}

Re: string.obj

Posted: Thu Nov 26, 2015 8:44 pm
by Ray
Это если вручную указывать имена функций, то да. А если использовать самописную функцию для автоматической загрузки библиотек, то не так.

Re: string.obj

Posted: Thu Nov 26, 2015 8:55 pm
by paulcodeman
Ray wrote:Это если вручную указывать имена функций, то да. А если использовать самописную функцию для автоматической загрузки библиотек, то не так.
она есть разве?

Re: string.obj

Posted: Thu Nov 26, 2015 9:06 pm
by Ray
А кто-то мешал её написать?

Re: string.obj

Posted: Thu Nov 26, 2015 9:21 pm
by e-andrew
Ray wrote:А кто-то мешал её написать?
Ну во многих либах (во всех, с которыми я работал libio, libini, libpng, box_lib) используется такие "неймспейсы". Имена сишных функций ужасны, одна из причин, почему я не пользуюсь сишкой. Сам я сейчас использую свой inc, где функция конкатенации строк называется string.concatenate и вроде не лень пока. Возможно, отголоски от высокоуровневого кодинга (js, go).

Re: string.obj

Posted: Thu Nov 26, 2015 9:37 pm
by Ray
Имена сишных функций короткие и понятные.И это не неймспейсы. А то что библиоиека без открытого кода сразу включается в образ в качестве вызывает определенные сомнения. Я бы не советовал таким пользоваться, т.к. закрытое ПО обычно удаляют из оф сборок

Re: string.obj

Posted: Thu Nov 26, 2015 10:00 pm
by paulcodeman
Ray wrote:Имена сишных функций короткие и понятные.И это не неймспейсы. А то что библиоиека без открытого кода сразу включается в образ в качестве вызывает определенные сомнения. Я бы не советовал таким пользоваться, т.к. закрытое ПО обычно удаляют из оф сборок
удаляют из-за чего? Тем более я же сказал. Что если надо, то пусть обращаются. Значит незакрытый.

Re: string.obj

Posted: Thu Nov 26, 2015 10:31 pm
by Ray
Из-за того что система открытая и большинство программ под неё открытые. zSea офигенный просмотрщик изображений даже не включили в офф. сборку из-за этого. Почитай форум если что.
Порядок добавления в сборку не такой. Код должен лежать на свн и собираться автосборкой при коммитах. А то года через 2-3 ты пропадешь например, к этому времени будет написана куча программ, которые зависят от твоих библиотек и скажем даже важных программ. Допустим после этого переведут систему полность на PE библиотеки, а загрузку obj уберут из ядра, как это случилось с драйверами. Т.к. исходников твоих библиотек на свн нет, оперативно поправить их не получиться. "-Ты не просил у него исходники? А то у меня только старые без того-то и того-то" И получится что твои библиотеки уже не грузятся их надо выкидывать, а вместе с ними и все те важные программы, пока их не перепишут без использования этих библиотек.