Показано с 1 по 4 из 4

Тема: функция строку в массив

  1. #1

    По умолчанию функция строку в массив

    Не найдя что то типа explode в codesys наваял следующее. Т.к. не очень с указателями дружен, не хочу допустить ошибок, особенно с памятью. Вроде бы работает. Подскажите что может пойти не так:
    PHP код:
    VAR_INPUT
        _str
    :STRING(1024);
        
    arr_max_elem_lenth:BYTE;
    END_VAR
    VAR
        
    el_cnt,char_cnt:INT;
        
    pt_source,pt_dest:POINTER TO BYTE;
        
    elem_lenINT;
    END_VAR 
    PHP код:
    pt_source:=ADR(_str);
    el_cnt:=1;
    pt_dest:= ADR(temp[el_cnt]);
    elem_len:=0;
    char_cnt:=0;
    IF 
    _str<>'' THEN
       
    WHILE (pt_source^<>0) AND (el_cnt<30) DO (*до конца строки и не превышая массива*)
        IF (
    pt_source^=124THEN(*если найден разделитель*)
            
    pt_dest^:=0;(*терминация строки элемента массива*)
            
    el_cnt:=el_cnt+1;pt_dest:= ADR(temp[el_cnt]);(*ставим указатель на следующий элемент*)
            
    char_cnt:=0;
        ELSE(*
    иначе побайтно копируем*)
            IF (
    char_cnt<arr_max_elem_lenth) AND  (el_cnt>1)  THEN(*чтобы не переполнить результирующий элемент*)
                
    pt_dest^:=pt_source^;(*копируем символ*)
                
    pt_dest:=pt_dest+1;
                
    char_cnt:=char_cnt+1;
            
    END_IF;
        
    END_IF;
        
    pt_source:=pt_source+1;(*Следующий байт*)
       
    END_WHILE;
    END_IF

  2. #2
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,246

    По умолчанию

    я бы частично использовал функции из оскат библиотеки, чтоб сформировать строку, в коде бы оставил только проверки
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #3

    По умолчанию

    Какие например, тут были бы уместны? Буферы?

  4. #4
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,246

    По умолчанию

    ну какой буфер, я же писал. Там целый раздел посвящен работе со строками, как раз используя указатели
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Похожие темы

  1. Ответов: 3
    Последнее сообщение: 29.02.2016, 23:35
  2. Имя переменной в строку и обратно
    от Papagun78 в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 03.09.2015, 16:07
  3. Ответов: 6
    Последнее сообщение: 20.10.2013, 13:58

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •