Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 23.09.2011
Сообщений: 100

Конструкция If In для массивов типа string

07.06.2013, 23:47. Показов 4004. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
у меня всего один вопрос, можно ли писать
Delphi
1
if s in ar1 then inc(i)
если s - string'овая переменная, а ar1 - массив переменных типа string?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.06.2013, 23:47
Ответы с готовыми решениями:

Создание массива массивов типа string
Здравствуйте господа и дамы! Помогите пожалуйста, застрял на этом.... В общем, ситуация такова: Есть код, в котором я нахожу 1) Id...

Присвоение объекту типа string рандомный элемент из массива типа string
Добрый вечер, дорогие форумчане. Я столкнулся с проблемой. Как присвоить объекту типа string рандомный элемент из массива типа string? ...

Как исправить E0144 значение типа "System::String ^" нельзя использовать для инициализации сущности типа
Как исправить E0144 значение типа "System::String ^" нельзя использовать для инициализации сущности типа ...

9
angstrom
08.06.2013, 00:09
Нельзя.
0 / 0 / 1
Регистрация: 23.09.2011
Сообщений: 100
08.06.2013, 01:45  [ТС]
а вот так писать можно?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
function Rav(s:string; as1:array of string):boolean;
var i:integer;
 begin
  for i:=0 to (length(as1)-1) do
   begin
    if as1[i]=s then
     begin
      result:=true;
      exit;
     end
    else result:=false;
   end;
 end;
Просто мне нужно если проверить, совпадает ли хотя бы один элемент в данном массиве с данной строкой
0
angstrom
08.06.2013, 02:28
Разве проверить нельзя?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function Rav(s : String; as1 : array of String) : Boolean;
var
  I : Integer;
begin
  Result := False;
  for I := 0 to High(as1) do // или for I := 0 to Length(as1) - 1 do
  begin
    if as1[I] = s then
    begin
      Result := True;
      Exit;
    end;
  end;
end;
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
08.06.2013, 02:44
Рейна, для того чтобы проверить, присутствует ли строка в массиве строк, придумали StrUtils.MatchText (без учета регистра) и MatchStr (с учетом регистра), не надо переписывать эти функции вручную...
1
0 / 0 / 1
Регистрация: 23.09.2011
Сообщений: 100
08.06.2013, 03:10  [ТС]
UI, ух ты! спасибо, я просто не знала про эти функции.

Добавлено через 3 минуты
людииии, у меня возникла необычная проблема - делфи не дает создать обработчик нажатия кнопки, не может найти метода реализации пишет, вот так "cannot find implementation of method button55click". Это как бы тонкий намек на то что 55я кнопка это уже перебор?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
08.06.2013, 03:26
Нормально это, 55-я кнопка, бывало и больше. Гораздо больше... Просто у тебя где-то "переплелись" 2 метода, один залез внутрь другого, так бывает, скажем:

Delphi
1
2
3
4
5
6
7
8
9
pprocedure TForm1.Button16Click(Sender: TObject);
begin
 
end;
 
rocedure TForm1.Button17Click(Sender: TObject);
begin
 
end;
Понимаешь, о чем я? p{тут втесался другой метод}rocedure. Проверь исходник на наличие подобного, и поправь вручную, после этого методы будут находиться.

Вот тут я уже отвечал на подобный вопрос: Ошибка(евентс)
1
0 / 0 / 1
Регистрация: 23.09.2011
Сообщений: 100
08.06.2013, 14:12  [ТС]
UI, да спасибо большое, так и было, я уже исправила, но у меня новая ошибка вот тут в указанной строке
Delphi
1
2
3
4
5
6
7
8
9
10
11
if np=7 then
  begin
   setlength(a1,n7); setlength(a2,n7); setlength(a1,n7);
   for i:=0 to n7-1 do
    begin
     a1[i]:=form3.StringGrid9.Cells[0,i];
     a2[i]:=form3.StringGrid9.Cells[1,i];
     a3[i]:=form3.StringGrid9.Cells[3,i];
    end;
   laba2.ConfOpOfPr(a1,a2,a3);  //вот тут ошибка
  end;
как доходит до этого места вылетает ошибка Project Project1.exe raised class EAccessViolation with message 'Access violation at address 00403F2C in module 'Project1.exe'. Write of address 00000000'. Process stopped. Use Step or Run to contine.
процедура ConfOpOfPr выглядит так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
Procedure TLab2.ConfOpOfPr (Post, Sur, Dat: array of string);
var i,n: word;
 begin
  n:=Length(Post);
  SetLength(OperationsOfProject.Confirm, n);
  for i:=0 to n-1 do
   begin
    OperationsOfProject.Confirm[i].Post:=Post[i];
    OperationsOfProject.Confirm[i].Surname:=Sur[i];
    OperationsOfProject.Confirm[i].Signature:=' ';
    OperationsOfProject.Confirm[i].Date:=Dat[i];
   end;
 end;
все как надо вроде, типы и там и там array of string, запускаться запускается, а вот когда доходит до этого места вдруг сваливается с ошибкой. Я смотрела, но я не вижу где тут ошибка.

Добавлено через 30 минут
ошибку нашла...........блиииииииииииинн........ .... вот в этой строчке
Delphi
1
setlength(a1,n7); setlength(a2,n7); setlength(a1,n7);
должно было быть
Delphi
1
setlength(a1,n7); setlength(a2,n7); setlength(a3,n7);
0
Заблокирован
08.06.2013, 15:36
Для таких вещей лучше использовать TStringList, у него же есть метод IndexOf для проверки есть ли строка в списке.
0
0 / 0 / 1
Регистрация: 23.09.2011
Сообщений: 100
09.06.2013, 16:24  [ТС]
а можно еще вопрос, у меня вот тут
Delphi
1
procedure CreatMatr (Matr: [COLOR="Red"]array of array of string[/COLOR]);
вылетает ошибка [Error] Lab2.pas(795): Identifier expected but 'ARRAY' found. Можно ли так писать и если нет, то чем это заменить? просто создать тип array of array of string и передавать переменную этого типа? просто мне хорошо бы без типов обойтись

Добавлено через 10 минут
предыдущий вопрос снят
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.06.2013, 16:24
Помогаю со студенческими работами здесь

Open Watcom нет перегрузки для оператора ввода для типа std::string
Решил использовать компилятор Open Watcom C++ и в результате не компилируется проект. Проект прилагается

Не работает поиск данных для типа string
Добрый день! Требуется создать поиск строк по значениям столбцов таблицы. Поиск для типа данных int работает, когда ищу строку по id...

Использование strlen для объектов типа string
Подскажите пожалуйста, как strlen использовать на string.

Добавить свойство для переменной типа string
Приветствую! Раньше не сталкивался с такими задачи, всвязи с чем вопрос: есть переменная string account; Каким образом можно...

Аналог strncpy и strncmp для типа string
Подскажите, как проводить операции сравнения и копировании с двумя строками типа string, при чём только над определённым количеством...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru