Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Стандартные Memo, edit, button, timer, Работа с закладкой стандартные обсуждаем 
:(
    Опции темы
Poseidon
Дата 14.8.2005, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(vovan430 @ 14.8.2005, 13:04)
не хочу тебя огорчать но нет. вот этот код пишу и не получается проверь у себя пожалуйста
Ёпрст! А где
Цитата(Femida @ 14.8.2005, 12:34)
var i:integer
smile

Ну это так, кстати. А ругается на то, что у тебя не закрыта строчка. В конце каждой строки (после буквы) поставь ' (знак открытия/закрытия строки).



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
mvdr
Дата 14.8.2005, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


физик
***


Профиль
Группа: Участник
Сообщений: 1349
Регистрация: 31.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 42



у тебя много end'ов
Добавлено @ 14:17
Poseidon, ругается насовсем на то, что ты написал


--------------------
Появляюсь редко, но часто метко

Изображать идиота сложнее, чем изображать умного: полезнее и не каждому дано
PM ICQ   Вверх
Pakshin A. S.
Дата 14.8.2005, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Народ! Кончайте дурью маяться! Проще, по-моему, вот так буквочки заменять...

Код

var
 c:char;

begin
 c:='а';
 while (ord('я') - ord(c) + ord('а')) > ord(c) do
   begin
    Memo2.Text:=StringReplace(Memo2.Text, c, chr(ord('я') - ord(c) + ord('а')));
    c:=succ(c);
   end;
end;

Должно сработать и всего 6 строк кода...
Добавлено @ 14:30
Тьфу... не дочитал вторую часть перекодировок... щас подправим...
PM   Вверх
Poseidon
Дата 14.8.2005, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(Femida @ 14.8.2005, 14:17)
у тебя много end'ов
Неа, end'ов у него как раз достаточно (просто бегины некоторые не указаны). А вот ругается именно на то, что я указал!
Цитата
Unterminated string


Добавлено @ 14:32
Pakshin A. S. smile


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Pakshin A. S.
Дата 14.8.2005, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Как мне понимается у нас в Memo2 исдет измененный текст из Memo1 в соответствии с постевленными правилами...

Самое разумное сделать вот так:
Код

var
 i:integer;
begin
 Memo2.Text:='';
 for i:=1 to Length(Memo1.Text) do
  if Memo1.Text[i] in ['а'..'я']
   then
    Memo2.Text:=Memo2.Text + chr(ord('я') - ord(Memo1.Text[i]) +1)
   else
    Memo2.Text:=Memo2.Text + Memo1.Text[i]
end;


Вроде формула должна быть верна...

P. S.
Проверьте ошибки, у кого под рукой есть дельфя...

Это сообщение отредактировал(а) Pakshin A. S. - 14.8.2005, 14:37
PM   Вверх
Poseidon
Дата 14.8.2005, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Цитата(Pakshin @ 14.8.2005, 14:35)
Проверьте ошибки, у кого под рукой есть дельфя...
Плохо по приборам писать smile
Ошибок нет, как и функционала. Не фуркает в общем.



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Pakshin A. S.
Дата 14.8.2005, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Верно... поправка на формулу (сразу тестом... кому надо - перепишет вышеизложенный код...):
Код

var
 c:char;
begin
 c:='б';
 c:=chr(ord('я') - ord(c) + ord('а'));
 ShowMEssage(c);
end;

Добавлено @ 14:46
На разных буквах тестил... вроде работает...
Добавлено @ 14:47
Короче: вместо единички в вышеизложенном коде с Memo должно стоять
Код

ord('а');

PM   Вверх
vovan430
Дата 16.8.2005, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 13.8.2005
Где: Иркутская обл. г. Тайшет

Репутация: нет
Всего: нет



Я не знаю почемуно у меня ни один из вышесказанных исходников не работает
У Pakshin A. S. буквы заменяет на какие-то палочки,
У Poseidon меняет только половину букв,
У Femida выдаёт ошибку
smile ЧТО ДЕЛАТЬ????? smile

PM MAIL WWW   Вверх
Pakshin A. S.
Дата 16.8.2005, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Код

var
 c:char;
begin
 for c:='а' to 'я' do
  Memo1.Lines.Add(chr(ord('я') - ord(c) + ord('а')));


В Memo запихивает алфавит в обратном порядке:
Цитата(Memo1)

я
ю
э
ь
ы
ъ
щ
ш
ч
ц
х
ф
у
т
с
р
п
о
н
м
л
к
й
и
з
ж
е
д
г
в
б
а


Проверь прогу этим кодом... Если нет, то по таблицке ASCII кодов идет в системе разрыв русских малых букв и данные вариант не будет работать... smile
Добавлено @ 09:19
Так... в досе табличка реально имеет разрыв в малых русских... А в винде у меня такого не наблюдается.. smile И в ЗАГЛАВНЫХ буквах разрыва нету...

Надо будет придумать универсальный способ...

Это сообщение отредактировал(а) Pakshin A. S. - 16.8.2005, 09:17
PM   Вверх
vovan430
Дата 16.8.2005, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 13.8.2005
Где: Иркутская обл. г. Тайшет

Репутация: нет
Всего: нет



Нет не полчается, может быть есть ещё какой нибудь способ?
PM MAIL WWW   Вверх
Pakshin A. S.
Дата 16.8.2005, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61




vovan430,
А ты точно измененный код используешь?
Код

 for i:=1 to Length(Memo1.Text) do
  if Memo1.Text[i] in ['а'..'я']
   then
    Memo2.Text:=Memo2.Text + chr(ord('я') - ord(Memo1.Text[i]) + ord('а')) // вот этот ord('а') вместо 1
   else
    Memo2.Text:=Memo2.Text + Memo1.Text[i]

PM   Вверх
vovan430
Дата 16.8.2005, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 13.8.2005
Где: Иркутская обл. г. Тайшет

Репутация: нет
Всего: нет



Мне нужна такая тема чтоб если я например ввёл в Memo1 'Вова' то в Memo2 появлялось 'Ороя' Буквы заменялисьпри нажатии кнопки в любом введённом слове
PM MAIL WWW   Вверх
Pakshin A. S.
Дата 16.8.2005, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



vovan430, а я что тебе тут пытаюсь сделать?
Добавлено @ 09:33
Вот с калькулятьром сижу и проверяю формулу по табличке кодов в книжке по паскалю:

160 - а
...
175 - п
<разрыв другими символами>
224 - р
...
239 - я

На данной табличке формула chr(ord('я') - ord(Memo1.Text[i]) + ord('а')) верна
PM   Вверх
vovan430
Дата 16.8.2005, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 70
Регистрация: 13.8.2005
Где: Иркутская обл. г. Тайшет

Репутация: нет
Всего: нет



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

б - щ
в - ш
г - ч
д - ц
ж - х
з - ф
к - т
л - с
м - р
н - п

PM MAIL WWW   Вверх
Pakshin A. S.
Дата 16.8.2005, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



smile Нафиг тебе оно... ЩАс попробую изобразить...
Добавлено @ 09:52
Самый тупой вариант:
Код

const
 sogl: set of char = ('б', 'в', {и т. п.});

function GetNo(c: char):integer;
var
 i:char;
begin
 Result:=0;
 i:='а';
 while i < c do
  begin
   if i in sogl
    then
     inc(Result);
   i:=succ(i);
  end;
end;

function GetCode(no: integer):char;
var
 c:char;
begin
 c:='я';
 while no <> 0 do
  begin
   if c in sogl
    then
     dec(no)
   c:=pred(c);
  end;
 Result:=succ(c)
end;



Как юзать:
Код

 c:='б';
 c:=GetCode(GetNo(c));


Теоритически должно работать...

Это сообщение отредактировал(а) Pakshin A. S. - 16.8.2005, 09:55
PM   Вверх
Страницы: (5) Все 1 2 [3] 4 5 
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

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

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2468 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.