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

Incompatible types: 'Char' and 'string'

28.04.2014, 19:48. Показов 4652. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
выдает на этой строчке ошибку
Delphi
1
 if vleSubst.Cells[1, i]=s then label1.caption:=strtofloat(used[s])  ;
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.04.2014, 19:48
Ответы с готовыми решениями:

Incompatible types: 'Char' and 'string'
str2 := LowerCase(str) Выдает: Incompatible types: 'Char' and 'string' При обертке правой части в PChar тоже вылезает ошибка типов..Как...

Incompatible types: 'Char' and 'String'
эта -функция для перевода из 2-ичной системы в 8-миричную. так на 20 стоке вылетает с данной ошибкой : Incompatible types: 'Char' and...

Error Incompatible types: Char and String
procedure TForm2.btn1Click(Sender: TObject); var otstyp,i,k,number:Integer; s,probel:string; begin probel:=' '; ...

23
0 / 0 / 1
Регистрация: 22.10.2012
Сообщений: 183
28.04.2014, 21:11  [ТС]
Студворк — интернет-сервис помощи студентам
FIL, прога как бы должна искать пару одинаковых символов, которые вводятся в один столбиков valuelisteditor
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
unit UnitCheck;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, XPMan, StdCtrls, Grids, ValEdit, ShellAPI;
 
type
   TRusDstAlphabet = array [Char] of Char;
   TfmCheck = class(TForm)
    VleSubst: TValueListEditor;
    mmDecryptMessage: TMemo;
    mmEncryptMessage: TMemo;
    btnDecryptMessage: TButton;
    xpmnfst1: TXPManifest;
    SaveDialog: TSaveDialog;
    mm1: TMainMenu;
    miAboutN1: TMenuItem;
    miOpen: TMenuItem;
    miSave: TMenuItem;
    miSaveAs: TMenuItem;
    miAboutN4: TMenuItem;
    miQuit: TMenuItem;
    miAboutN6: TMenuItem;
    miCheck: TMenuItem;
    miAboutN8: TMenuItem;
    miAbout: TMenuItem;
    miHelp: TMenuItem;
    OpenDialog1: TOpenDialog;
    stringgrid1: TStringGrid;
    Label1: TLabel;
    procedure miOpenClick(Sender: TObject);
    procedure miSaveClick(Sender: TObject);
    procedure miSaveAsClick(Sender: TObject);
    procedure miCheckClick(Sender: TObject);
    procedure miAboutClick(Sender: TObject);
    procedure miHelpClick(Sender: TObject);
    procedure btnDecryptMessageClick(Sender: TObject);
   procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
       RusDstAlphabet: TRusDstAlphabet;
    procedure GenRearrangment;
    function  ValidateRearrangement: Boolean;
    function  UpCaseRus(Ch: Char): Char;
    function  LowCaseRus(Ch: Char): Char;
    procedure RecalcAlphabet(nKey: Integer);
    function  EncryptDecryptString(strMsg: String): String;
  public
    { Public declarations }
  end;
 
var
  fmCheck: TfmCheck;
  FileWork: String;
 
implementation
 
{$R *.dfm}
 
uses unitAbout;
 
// функция генерации случайной перестановки
procedure TfmCheck.GenRearrangment;
var
  Ch, c: char;
  // нужен для определения встречался ли символ ранее
  WasGen: array [Char] of Boolean;
begin
  // заполняем массив значением False
  FillChar(WasGen, SizeOf(WasGen), False);
  for Ch := 'А' to 'Я' do
    begin
      // генерируем случайный символ до тех пор, пока
      // не будет получен еще не сгенерированный
      repeat
        c := Chr(Ord('А') + random(32));
      until not WasGen[c];
      // помечаем, что символ сгенерирован
      WasGen[c] := True;
      vleSubst.Values[Ch] := c;
          end;
end;
 
 // проверяет корректность перестановки введенной пользователем
function TfmCheck.ValidateRearrangement: Boolean;
var
  i: Integer;
  s: String;
  Used: array [Char] of Boolean;
begin
  Result := False;
  FillChar(Used, SizeOf(Used), False);
  for i := 1 to vleSubst.RowCount - 1 do
    Begin
      // символ единственный в строчке?
      s := vleSubst.Cells[1, i];
      if (Length(s) <> 1) then
        Exit;
      // символ - буква русского языка?
      s[1] := UpCaseRus(s[1]);
      if not (s[1] in ['А'..'Я']) then
        Exit;
      // уже встречался ранее?
      if Used[s[1]] then Exit else
        label1.caption:=s;
      Used[s[1]] := True;
    End;
  Result := True;
end;
 
function TfmCheck.UpCaseRus(Ch: Char): Char;
begin
  if Ch = 'ё' then Ch := 'Е';
  if Ch in ['а'..'я'] then Dec(Ch, 32);
  Result := Ch;
end;
 
function TfmCheck.LowCaseRus(Ch: Char): Char;
begin
  if Ch = 'Ё' then Ch := 'е';
  if Ch in ['А'..'Я'] then Inc(Ch, 32);
  Result := Ch;
end;
 
procedure TfmCheck.RecalcAlphabet(nKey: Integer);
var
  Ch: Char;
  i: Integer;
begin
  if Length(mmDecryptMessage.Text) <> 0 then   showmessage('ПОЛУЧИЛОСЬ!!!')
  else showmessage('введите текст для шифровки');
  // предварительно все символы в алфавите шифрования
  // соответствуют символам из незашифрованного алфавита
  for Ch := Low(RusDstAlphabet) to High(RusDstAlphabet) do
    RusDstAlphabet[Ch] := Ch;
  // формируем алфавит отдельно для каждого из регистров букв
  // здесь для верхнего
  for i := 1 to vleSubst.RowCount - 1 do
    RusDstAlphabet[vleSubst.Cells[nKey, i][1]] := vleSubst.Cells[1 - nKey, i][1];
  // здесь для нижнего
  for i := 1 to vleSubst.RowCount - 1 do
    RusDstAlphabet[LowCaseRus(vleSubst.Cells[nKey, i][1])] :=
        LowCaseRus(vleSubst.Cells[1 - nKey, i][1]);
end;
 
function TfmCheck.EncryptDecryptString(strMsg: String): String;
var
  i: Integer;
begin
  // преобразуем строчку посимвольно
  for i := 1 to Length(strMsg) do
    strMsg[i] := RusDstAlphabet[strMsg[i]];
  Result := strMsg;
end;
 
procedure TfmCheck.miOpenClick(Sender: TObject);
begin
 if OpenDialog1.Execute then
   begin
     mmDecryptMessage.Lines.LoadFromFile(OpenDialog1.FileName);
     FileWork:=OpenDialog1.FileName;
    end;
end;
 
procedure TfmCheck.miSaveClick(Sender: TObject);
begin
   if SaveDialog.Execute then  mmEncryptMessage.Lines.SaveToFile(Filework+'.txt');
end;
 
procedure TfmCheck.miSaveAsClick(Sender: TObject);
begin
  SaveDialog.FileName := FileWork;
    if SaveDialog.Execute then
      begin
        FileWork := SaveDialog.FileName;
        mmEncryptMessage.Lines.SaveToFile(FileWork);
      end;
end;
 
procedure TfmCheck.miCheckClick(Sender: TObject);
var
  i: Integer;
begin
  // проверяем корректность ввода перестановки
  if ValidateRearrangement then
    begin
      // создаем алфавит преобразования открытого текста
      RecalcAlphabet(0);
      // предотвращаем перерисовку компонента до тех пор, пока не
      // зашифруем все строчки сообщения
      mmEncryptMessage.Lines.BeginUpdate;
      // очищаем текстовый редактор
      mmEncryptMessage.Clear;
      // шифруем открытый текст построчно
      for i := 0 to mmDecryptMessage.Lines.Count - 1 do
        mmEncryptMessage.Lines.Add(EncryptDecryptString(mmDecryptMessage.Lines[i]));
      // разрешаем перерисовку компонента
      mmEncryptMessage.Lines.EndUpdate;
    end
 else
    MessageDlg('Ошибка: символы подстановки заданы не верно', mtError, [mbOk], 0);
end;
 
procedure TfmCheck.miAboutClick(Sender: TObject);
begin
  fmAbout.show;
end;
 
procedure TfmCheck.miHelpClick(Sender: TObject);
begin
     if FileExists(ExtractFilePath(Application.ExeName)+'Справка.chm') then
  ShellExecute(Handle,nil,Pchar(ExtractFilePath(ParamStr(0))+'Справка.chm'),nil,nil,SW_SHOW)
  else
  MessageDLG('Файл справки не найден',mtWarning,[mbCancel],0);
end;
 
procedure TfmCheck.btnDecryptMessageClick(Sender: TObject);
var
  i: Integer;
begin
  mmEncryptMessage.Text:='';
  // проверяем корректность ввода перестановки
  if ValidateRearrangement then
    begin
      // создаем алфавит преобразования открытого текста
      RecalcAlphabet(0);
      // предотвращаем перерисовку компонента до тех пор, пока не
      // зашифруем все строчки сообщения
      mmEncryptMessage.Lines.BeginUpdate;
      // очищаем текстовый редактор
      mmEncryptMessage.Clear;
      // шифруем открытый текст построчно
      for i := 0 to mmDecryptMessage.Lines.Count - 1 do
        mmEncryptMessage.Lines.Add(EncryptDecryptString(mmDecryptMessage.Lines[i]));
      // разрешаем перерисовку компонента
      mmEncryptMessage.Lines.EndUpdate;
    end
  else
    MessageDlg('Ошибка: символы подстановки заданы не верно', mtError, [mbOk], 0);
 
end;
 
procedure TfmCheck.FormCreate(Sender: TObject);
var
  Ch: char;
    c: char;
begin
randomize;
  for c := 'А' to 'Я' do
    StringGrid1.Cells[0, Ord(c)-Ord('А')]:=c;
  // инициализация редактора значений
  for Ch := 'А' to 'Я' do
    vleSubst.InsertRow(Ch, '', True);
  // генерация случайной перестанвки
  GenRearrangment;
end;
 
e
а это весь код программы хд
0
28.04.2014, 21:12

Не по теме:

Цитата Сообщение от FIL Посмотреть сообщение
Откуда ж я знаю.
Так ты ж волшебник. Ты и так всё понимаешь. :)

0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
28.04.2014, 21:32
Лучший ответ Сообщение было отмечено anyakrg как решение

Решение

Не по теме:

Цитата Сообщение от northener Посмотреть сообщение
Так ты ж волшебник.
Видимо некоторые так и думают, а я еще только учусь. :)



anyakrg, попробуй так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function TfmCheck.ValidateRearrangement: Boolean;
var
  i: Integer;
  s: String;
  Used: array [Char] of Boolean;
begin
  Result := False;
  label1.caption := '';
  FillChar(Used, SizeOf(Used), False);
  for i := 1 to vleSubst.RowCount - 1 do
    Begin
      // ñèìâîë åäèíñòâåííûé â ñòðî÷êå?
      s := vleSubst.Cells[1, i];
      if (Length(s) <> 1) then
        Exit;
      // ñèìâîë - áóêâà ðóññêîãî ÿçûêà?
      s[1] := UpCaseRus(s[1]);
      if not (s[1] in ['À'..'ß']) then
        Exit;
      // óæå âñòðå÷àëñÿ ðàíåå?
      if Used[s[1]] then
        label1.caption := label1.caption + s[1]
      else
        Used[s[1]] := True;
    End;
  Result := True;
end;
1
0 / 0 / 1
Регистрация: 22.10.2012
Сообщений: 183
28.04.2014, 22:07  [ТС]
FIL, аааааа
все выходит
спасибо огромное
а то с курсачом тот еще трабл был бы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.04.2014, 22:07
Помогаю со студенческими работами здесь

Ошибка: Incompatible types: 'Char' and 'String'
Помогите, пожалуйста, как исправить ошибку Incompatible types: 'Char' and 'String' начиная со строки '00': t:=t+''; и до '33': t:=t+'я'; ...

Ошибка: Incompatible types: 'integer' and 'char'
procedure TForm1.Button1Click(Sender: TObject); function bmsearch( startpos : integer; s, p : string) : integer; type TBMTable...

Ошибка: Incompatible types: 'Word' and 'Char'
Помогите пожалуйста. Есть код unit MyClasses; interface uses SysUtils, Dialogs, Classes; type TPerson = class private

Incompatible types: 'Real' and 'string'
var n,i:integer; a:array of real; begin n:=strtoint(edit1.text); for i := 0 to n do begin a:=stringgrid1.Cells;{здесь выдает...

incompatible types: 'Integer' and 'String'.
Построил логический элемент Case в Delphi 7, но у меня выкидает ошибку. Вот код: procedure TForm1.ComboBox1Change(Sender: TObject); ...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru