Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

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

Excel VBA, CAD, Софт, ОС, Windows, Ubuntu, Android, VPS
Win Api, Assembler, C++, Java, Pascal, Lazarus, Delphi, OpenGL, DirectX
C#, Qt, .NET, ASP.NET, Windows Forms, ADO.NET, Framework, WPF, UWP, WinRT, XAML
HTML, CSS, JavaScript, Ajax, PHP, Perl, Python, Ruby, SQL, WordPress, API, XML, JSON, ActionScript, Flash

Ответ
 
Опции темы
Старый 11.01.2017, 00:06   #1
Simolium
Новичок
 
Регистрация: 10.01.2017
Сообщений: 1
Репутация: 10
По умолчанию Ошибка чар и панси чар

E2010 Incompatible types: 'Char' and 'PAnsiChar'


Ругается на строку
Цитата:
s[beg+j-1]:=makeBigChar(PAnsiChar(s[beg+j-1]));
вот код программы, может кто помочь?

Цитата:
var s:ansistring;
l,i: integer;
const sb=['1', '2', '3', '4', '5', '6', '7', '8', '9'];
begin
Edit1.Show;
Label1.Hide;
Edit1.Text:='';
Edit1.Text:='Все цифры заменить символом "Х"';
Memo2.Clear;
s:=AnsiLowerCase(Memo1.Text);
l:=length(s);
for i := 1 to l do
begin
if s[i] in Sb then s[i]:='X';
end;
Memo2.Lines.Add(s);
end;

procedure TForm1.Button2Click(Sender: TObject);
const
delims=[' ','.',',','!','?',':',';'];
maxStringLength=80;
type
Tstring=string[maxStringLength];
function findWord(const s:Tstring; start:integer; var wordStart,wordLen:integer):boolean;
var
i:integer;
begin
i:=start;
while (i<=length(s)) and (s[i] in delims) do
inc(i);
wordStart:=i;
while (i<=length(s)) and not(s[i] in delims) do
inc(i);
wordLen:=i-wordStart;
findWord:=wordLen>0;
end;
function getLenLongestWord(const s:Tstring):integer;
var
beg,len,i,maxLen:integer;
begin
maxLen:=0;
i:=1;
while findWord(s,i,beg,len) do
begin
if len>maxLen then
maxLen:=len;
i:=beg+len;
end;
getLenLongestWord:=maxLen;
end;
function makeBigChar(ch:char):char;
var
resChar:char;
begin
case ch of
'a'..'z': resChar:=upCase(ch);
'а'..'п': resChar:=chr(ord(ch)-32);
'р'..'я': resChar:=chr(ord(ch)-80);
'ё': resChar:='Ё';
else
resChar:=ch;
end;
makeBigChar:=resChar;
end;
procedure handleString(var s:Tstring);
var
i,j,beg,len,maxLen:integer;
begin
maxLen:=getLenLongestWord(s);
i:=1;
while findWord(s,i,beg,len) do
begin
if len<maxLen div 2 then
for j:=1 to len do
s[beg+j-1]:=makeBigChar(PAnsiChar(s[beg+j-1]));
i:=beg+len;
end;

Последний раз редактировалось Simolium; 11.01.2017 в 00:08. Причина: опечатка
Simolium вне форума   Ответить с цитированием
Старый 11.01.2017, 01:58   #2
northener
Профессионал
 
Регистрация: 15.07.2013
Сообщений: 1,291
Репутация: 366
По умолчанию

Цитата:
Сообщение от Simolium Посмотреть сообщение
case ch of
'a'..'z': resChar:=upCase(ch);
'а'..'п': resChar:=chr(ord(ch)-32);
'р'..'я': resChar:=chr(ord(ch)-80);
'ё': resChar:='Ё';
О боже! Откуда этот код времен ASCII?
northener вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задачa на чар в паскале. Crabsid Помощь студентам 2 14.02.2011 09:55
прочитать предложение в переменную чар Little_lady Помощь студентам 11 02.11.2010 15:19
Анси и Юникод в строках.... Johnson PHP 7 03.10.2008 22:20
Проблемы с кодировками Анси и Юникод HunterMan Win Api 4 31.05.2008 00:41




21:27.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru