On-line: гостей 38. Всего: 38 [подробнее..]
АвторСообщение
администратор




Пост N: 8348
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.07.26 18:41. Заголовок: Строка как массив


c:="12345"
c[3]:="9"
надо подключать xhb.ch
что то склероз у меня а какое объявление в hbcompat.ch
отвечает за такую работу ?
просто хотел одной строкой прописать в начале проги что бы
не подключать xhb.ch из xhb
пошарился ....не увидел с ходу

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 10 [только новые]


администратор




Пост N: 2062
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 11.07.26 21:53. Заголовок: Dima пишет: пошарил..


Dima пишет:

 цитата:
пошарился ....не увидел с ходу


https://clipper.borda.ru/?1-4-1783795932977-00001454-000-0-0#003.001.001.001.001

А это deepseek выдал
https://chat.deepseek.com/share/mizk997ovd7wpawdat

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8349
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.07.26 08:31. Заголовок: Haz Игорь я пробнул..


Haz
Игорь я пробнул как Мирослав писал.
Что то криво работает ))
Чекнул, должно писать в строку но не пишет
Подключил в своем prg снова xhb.ch и заработало норм

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8350
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.07.26 09:01. Заголовок: остановился на Stuff..


остановился на Stuff

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2063
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 12.07.26 10:19. Заголовок: Dima пишет: хотя лу..


Dima пишет:

 цитата:
хотя лучше свою сделаю



Все зависит от задачи
При байтовых операциях лидирует hb_peek(), но работает в числовых кодах.работает быстро без временных строк, но если нужно пересобрать строку и даже hb_broke() будет тормозить, тут быстрее substr(). При замене и встаке stuff() быстрее. Но есть
Один нюанс в харбуре строки неизменяемый напрямую, то есть при каждом изменении создается измененная новая строка.
Если строка длинная и замен в ней много то столько же будет и новых созданных строк и выделений памяти под них. Это проблема харбура. Тут только вызов С функции поможет.
Большинство задач на harbour не так критичны к скорости выполнения операций, но бывают исключения (например протоколы обмена между устройствами могут валиться из-за короткого таймаута устройства)

В общем своя функция под задачу лучше, но зависит от задачи

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8351
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.07.26 12:09. Заголовок: смотри какой прикол ..


смотри какой прикол обнаружил

 
cc:="00000000"
cc:=StrTran( cc, "0", "1", 1, 1 )
cc:=StrTran( cc, "0", "1", 2, 1 )
cc:=StrTran( cc, "0", "1", 5, 1 )
cc:=StrTran( cc, "0", "1", 3, 1 )
cc:=StrTran( cc, "0", "1", 4, 1 )

? cc

cc:="00000000"
cc:=STuff( cc,1,1,"1" )
cc:=STuff( cc,2,1,"1" )
cc:=STuff( cc,5,1,"1" )
cc:=STuff( cc,3,1,"1" )
cc:=STuff( cc,4,1,"1" )
? cc
wait


Результат StrTran 10101011 что не верно
Результат Stuff 11111000 верно
Что за прикол ?
Первый Strtran отработал верно а дальше всё в молоко
Если с XHB.CH и XHB тоже нормально

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8353
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.07.26 12:19. Заголовок: Проехали ... Gemini ..


Проехали ... Gemini гугла объяснил
Это фича такая в StrTran

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4898
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.07.26 18:04. Заголовок: Dima cc:="00000..


Dima
 
cc:="00000000"
FOR EACH c IN cc
IF hb_enumIndx(c) > 5 ;EXIT
ENDIF
IF c == "0" ; c := "1"
ENDIF
NEXT
? cc

PS.
FOR EACH c1, c2, c3 IN cc1, cc2, cc3
...
NEXT


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8354
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.07.26 19:49. Заголовок: SergKis Сергей вопр..


SergKis
Сергей вопрос был не про то как это реализовать, я про замену.
А почему так своеобразно отработал StrTran..в нортон гайде как бы
про эту фичу нет ни чего.
AI предложил самый быстрый вариант STUFF и он не перебирает всю строку.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4899
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 12.07.26 20:04. Заголовок: Dima Когда то Stuff..


Dima
Когда то Stuff, товарищ писал на С, т.к. родной проделывал с перемещением текста (сейчас не знаю, не смотрел), а for each делает замену в исходной строке, т.е. c := "1" делает замену в строке cc и если накручивать алгоритмы, то это неплохой вариант, по мне

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 8355
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 12.07.26 20:47. Заголовок: SergKis OK..


SergKis
OK

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1523
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет