Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 03.06.2019, 17:54   #1
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 2,535
По умолчанию Поиск Tab

Нужно в строке найти позицию символа табуляции. Я делаю так:
Код:
  st: string[1] ;
............................
  st := '+' ; st[1] := Chr(9) ;
..............................
  i := Pos (st,mystr) ;
Можно ли сделать это менее через#@пно ?
digitalis вне форума Ответить с цитированием
Старый 03.06.2019, 20:43   #2
ViktorR
Участник клуба
 
Регистрация: 23.10.2010
Сообщений: 1,586
По умолчанию

А так устроит?
Код:
...
str1 := 'abcd' +^I + 'def';
n1 := pos(^I,str1);
...
Символьная константа может быть записана в трёх формах:
1. Символ в апострофах;
2. Десятичный код символа предваряемый знаком #. Используется для знаков, отсутствующих на клавиатуре, например, псевдографика;
3. Буква, предворяемая знаком ^. Используется для управляющих символов. Код буквы вычисляется как <Код символа10> + 6410. Пример: ^I - Tab, ^M - Cr (Carrier return).
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 03.06.2019, 21:48   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
i := Pos (st,mystr) ;
так проще же:
Код:
i := Pos (#9,mystr);
да и так тоже должно "скушать"
Код:
i := Pos (chr(9),mystr);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.06.2019, 11:21   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 2,535
По умолчанию

Ясно, thanks.
Это при переходе от Си к Делфи меня смущало то, что в Си строка - это массив char, а в Делфи - это две разные сущности. Уткнулся в непонятку когда-то, не помню уже подробностей, и с тех пор в бошке пробел оставался. Заполнил
Кажется, вспомнил. В Си конструкция
Код:
char  ch ; int i ; i = ch ;
работает, а в Д. нужно Ord() употребить.
digitalis вне форума Ответить с цитированием
Старый 04.06.2019, 11:26   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
работает, а в Д. нужно Ord() употребить.
да не обязательно
можно
Код:
var ch:char;
begin
  for ch := 'A' to 'Z' do ....
а ord понадобится для приведения типов ( integer - > char, char -> integer и т.д.)

но вообще тема с char сейчас не такая простая, в связи с Unicode, один char может занимать не один байт.
но вообще это отдельная песня!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста решить две задачки - поиск минимального значения в векторе и поиск/перестановка положительных элементов в матрице Ruslan Rutkovsky Паскаль, Turbo Pascal, PascalABC.NET 6 12.05.2017 23:43
Гугл поиск отсылает на майл.ру поиск Ципихович Эндрю Свободное общение 5 22.11.2016 11:01
Помощь в доработке программы на языке паскаль (бинарный поиск, поиск перебором) DimzNOVIchok45 Помощь студентам 0 13.10.2014 19:11
Реализовать два метода поиска строк в массиве: поиск перебором, бинарный поиск на языке Pascal DimzNOVIchok45 Помощь студентам 7 19.09.2014 20:40
Обработка одномерного массива - поиск среднего, поиск минимального, сортировка (Паскаль) nadez Паскаль, Turbo Pascal, PascalABC.NET 3 18.03.2014 07:45


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840