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

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

есть такое?

28 ответов

41 просмотр

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

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

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 в теории генерирует немного разные бинари но не проверял просто сразу включил чтобы наверняка

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта