169 похожих чатов

Ищу реализацию case на FPC со строками по строковой переменной,

есть такое?

28 ответов

23 просмотра

Нет такого в природе, если только через массив

Есть, если правильно понял

Ruslan-aka DUDE Автор вопроса
Ed Doc
Нет такого в природе, если только через массив

Что подразумевается под "через массив"?

Ruslan-aka DUDE Автор вопроса

case aString of 'red': RedProcedure(); 'green': GreenProcedure(); 'blue': BlueProcedure(); else AnyColor; end; Про это речь?

Ruslan-aka DUDE Автор вопроса
Renat Suleymanov
case aString of 'red': RedProcedure(); 'green'...

Да, я вроде так делал Только не aString а sVar

Ruslan-aka DUDE Автор вопроса
Renat Suleymanov
И? Не компилится?

var sVar: string = 'green'; ... case sVar ^1of 'red': ^2RedProcedure(); ^1 (4088) Ordinal or string expression expected ^2 (3055) Constant and CASE types do not match ^2 (4007) Ordinal expression expected ^куда указывает курсор ошибки

Ruslan aka DUDE
var sVar: string = 'green'; ... case sVar ^1of...

https://stackoverflow.com/questions/14515492/using-case-statement-with-string

Ruslan aka DUDE
var sVar: string = 'green'; ... case sVar ^1of...

Ну тут явно пишется, что sVar это не строка. Уверен, что строка? Что-то не складывается. Может какой-то синтаксис не тот? Что стоит? {$mode objfpc}{$H+} или что-то другое?

🥓 Хамон Эврибади
https://stackoverflow.com/questions/14515492/using...

С case должно тоже работать. У него в чем-то другом причина

Renat Suleymanov
С case должно тоже работать. У него в чем-то друго...

разве? там во втором комментарии описывается почему не должно работать

🥓 Хамон Эврибади
разве? там во втором комментарии описывается почем...

В современных и продвинутых Pascal IDE уже давно работает )

Ruslan-aka DUDE Автор вопроса

вы правы, у меня был Delphi mode c {$mode objfpc}{$H+} работает а эта деректива на весь файл или можно обернуть только кейс?

Ruslan aka DUDE
вы правы, у меня был Delphi mode c {$mode objfpc}{...

😐 честно говоря не задавался таким вопросом. Кажется только на весь файл

Ruslan aka DUDE
вы правы, у меня был Delphi mode c {$mode objfpc}{...

Если нужен именно дельфи синтаксис (а зачем?), то можно сделать как выше @eddoceddoc предлагал. Через массив и IndexStr

Ruslan-aka DUDE Автор вопроса
Renat Suleymanov
Если нужен именно дельфи синтаксис (а зачем?), то ...

я так делал, это лучше чем ничего но надо в ручную прописывать комметарии к индексам а если порядок изменился то полностю переписывать комментарии речь о Case IndexStr(..., ...) of 0: //вася 1: //петя 2: //коля 3: //маша если вдруг между 0 и 1 появляется новая запись то ... переписывай

Ruslan aka DUDE
вы правы, у меня был Delphi mode c {$mode objfpc}{...

директива на модуль, вроде, работает

Ruslan aka DUDE
я так делал, это лучше чем ничего но надо в ручную...

А синтаксис дельфи нужен для чего? Просто если даже Lazarus IDE не используешь, то наверное и в Дельфи не нужно? Или какие причины делать недефолтный для FPC синтаксис?

Ruslan-aka DUDE Автор вопроса
🥓 Хамон Эврибади
if..then..else ...

знаю, знаю, просто ищу еще варианты) из любопытства

Ruslan-aka DUDE Автор вопроса
Renat Suleymanov
А синтаксис дельфи нужен для чего? Просто если даж...

да вроде для того чтобы совместимость была с длл или в этом плане все ок будет?

Ruslan aka DUDE
знаю, знаю, просто ищу еще варианты) из любопытств...

Case StrIndex('SomeName', ['bobby', 'tommy', 'somename']) of 0: ..code.. ;//bobby 1: ..code..;//tommy 2: ..code..;//somename else ShowMessage('error'); end. Такое решение с массивом точно не подойдет?

Ruslan aka DUDE
да вроде для того чтобы совместимость была с длл и...

Совместимость с DLL не от синтаксиса зависит ведь. ИЛи я не понял вопроса

Ruslan-aka DUDE Автор вопроса
Renat Suleymanov
Case StrIndex('SomeName', ['bobby', 'tommy', 'some...

нет, я так и делал до того как написать в чат массив сильно большой становится

Ruslan aka DUDE
нет, я так и делал до того как написать в чат масс...

Если выбрал дельфи синтаксис из-за DLL это неправильно. Не повлияет

Ruslan-aka DUDE Автор вопроса
Renat Suleymanov
Совместимость с DLL не от синтаксиса зависит ведь....

mode в теории генерирует немного разные бинари но не проверял просто сразу включил чтобы наверняка

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
8
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Карта сайта