Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

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

А так устроит?
Код:
...
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,238
По умолчанию

Цитата:
Сообщение от 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
Сообщений: 4,536
По умолчанию

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

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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