Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2008, 20:19   #1
Zloy_Doomer
Форумчанин
 
Аватар для Zloy_Doomer
 
Регистрация: 25.04.2008
Сообщений: 277
Восклицание Побуквенно считать слово из файла

Доброго времени суток господа...Такой вопрос: как мн есчитать слово из текстового файла по буквам...Например там слово "дом", мне нада переменной a:="д" b:="о" c:="м"...Или если я считал в одну переменную слово как мне его разложит ьпо буквам...Напимер

assignfile(f,ExtractFilePath(Applic ation.ExeName)+'lock.dat');
reset(f);
readln(f,pass);
pass1:= pass[0];
pass2:= pass[1]; и так далее..

етот код не работает но по моему ето должно ввыглядеть какт о так....

Очень срочно, ибо нада прогу закончить до утра...

И еще чтобы перевести букву в ее код используется функция ORD а назад какя функцыя переводит???
Зараннее спасибо за ответы...
it is a good day to die

Последний раз редактировалось Zloy_Doomer; 17.12.2008 в 20:24.
Zloy_Doomer вне форума Ответить с цитированием
Старый 17.12.2008, 20:31   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,837
По умолчанию

Что там у Вас не работает, понять по приведённому куску кода и комментариям невозможно.
А по поводу
Цитата:
И еще чтобы перевести букву в ее код используется функция ORD а назад какя функцыя переводит???
CHR - обратная. Однако можно использовать простые преобразования типов: Byte() и Char() соответственно.
Arigato вне форума Ответить с цитированием
Старый 17.12.2008, 20:36   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
pass1:= pass[0]
А разве в паскале индексация начинается не с 1 ?
Цитата:
ORD а назад
Chr. Проще было открыть хэлп по Ord и посмотреть ссылку "See also"

З.Ы. Ну что ты будешь делать? Он специально меня подкарауливает и норовит опередить
Arigato +++
mihali4 вне форума Ответить с цитированием
Старый 17.12.2008, 20:51   #4
Zloy_Doomer
Форумчанин
 
Аватар для Zloy_Doomer
 
Регистрация: 25.04.2008
Сообщений: 277
По умолчанию

Блин кароч чето у меня нифига не получается...если можно то кусочеккода для реализации такого алгоритма (башка не варит апсалютно):
1. Считывается определенное слово(могут присутсвовать и цыфры) из скажем Edit1.Text.
2. Ето слово, разбивается побуквенно и переводится в код с помощью функции ORD.
3. Дальше к каждому числу прибавляется(отнимается,делится.умн ожается.не важно) оперделенные числа...
4. И все ето записывается в файл...

И собственно считывание...
1.Считывается из текстового файла ето число которое мы туда записали...
2. Переводится в обратно в буквы...
3.Присваивается тому же Edit1.Text...
4. И тут сравнивается с результатом который ввел юзер...

З.Ы ето я как вы уже наверное догадались пытаюсь сделат ьаутентификацию спримитивным шифрованием...

Прошу сильно н епинать ибо весь день подымал и настраивал сервак по етому мысли в голове разные и никак не о делфи...приходится нстраиватся...
it is a good day to die
Zloy_Doomer вне форума Ответить с цитированием
Старый 17.12.2008, 21:25   #5
Гриха
Вернулся
Форумчанин
 
Аватар для Гриха
 
Регистрация: 29.10.2006
Сообщений: 174
По умолчанию

Вот что нарыл(DelphiWorld), может поможет...
только сам коментировать не буду и сам не проверял...


Как преобразовать String в Binary и наоборот
--------------------------------------------------------------------------------


Автор: Rem



function BinStrToByte(a_sBinStr: string): byte;
var
i: integer;
begin
Result := 0;
for i := 1 to length(a_sBinStr) do
Result := (Result shl 1) or byte(a_sBinStr[i] = '1');
end;

function ByteToBinStr(a_bByte: byte): string;
var
i: integer;
begin
SetLength(Result, 8);
for i := 8 downto 1 do
begin
Result[i] := chr($30 + (a_bByte and 1));
a_bByte := a_bByte shr 1;
end;
end;

// Примечание: вторая функция использует тот факт,
// что в таблице ANSI коды '0' = $30 и '1' = $31
...учись так - будто будешь жить вечно...
...живи так - будто умирать завтра...
Гриха вне форума Ответить с цитированием
Старый 17.12.2008, 22:08   #6
Zloy_Doomer
Форумчанин
 
Аватар для Zloy_Doomer
 
Регистрация: 25.04.2008
Сообщений: 277
По умолчанию

var num,num1: string;
begin
num:= 'qwerty';
num1:= IntToStr(ORD(num);
num:= CHR(num1);
showmessage(num);

Почемуто num возвращает цифры...странно...мож че не правельно???
it is a good day to die
Zloy_Doomer вне форума Ответить с цитированием
Старый 18.12.2008, 08:37   #7
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Попробуй следующий метод.Вместо Edit использую многострочный Memo.
В Memo грузишь текст любым способом - с клавы,присваиваешь свойству text любой свой текст, или Load с файла.
Код:
procedure TForm1.Memo1Chang(Sender: TObject);
var
i: integer;
str1,str2: string;
begin
  str1:= Form1.Memo1.Text;
  str2:= ' ';
  for i:= 1 to length(str1) do
  begin
    str2:= str2 + IntToStr((Ord(str1[i])));
    if str[i] = #13 then str2:= str2 + ' ';
  end;
  Form1.Memo2.Text:= str2;
end;
Любое появление в Memo1 символа отбразится в Memo2 числовым кодом.
Все идот на автомате, не надо считать ни слова.ни буквы.
Результат можно посмотреть здесь:
http://www.programmersforum.ru/showthread.php?t=32419
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 18.12.2008, 09:43   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
var num,num1: string;
begin
num:= 'qwerty';
num1:= IntToStr(ORD(num);
num:= CHR(num1);
showmessage(num);

Почемуто num возвращает цифры...странно...мож че не правельно???
Этот бред вообще ничего возвращать не может, поскольку ORD неприменимо к строке и даст ошибку компиляции, так же, как и CHR.
Цитата:
Ето код писался прямо тут и не проверялся компилятором
Почемуто num возвращает цифры
Ну, и в какой строке написано правдиво?

Последний раз редактировалось mihali4; 18.12.2008 в 10:33.
mihali4 вне форума Ответить с цитированием
Старый 18.12.2008, 10:14   #9
Zloy_Doomer
Форумчанин
 
Аватар для Zloy_Doomer
 
Регистрация: 25.04.2008
Сообщений: 277
По умолчанию

В числовой код получается переводить без проблем, а вот назад нет...
Если можно то кусочек работающего кода, а то уже низнаю куда дальше рыть...

to mihali4
Ето код писался прямо тут и не проверялся компилятором, так что может содержать ошибки...И ето всеволиш примерный пример...
it is a good day to die
Zloy_Doomer вне форума Ответить с цитированием
Старый 18.12.2008, 10:40   #10
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Для обратного преобразования что-то так (код не проверял):
Код:
procedure TForm1.Memo2Chang(Sender: TObject);
var
i: integer;
str1,str2: string;
begin
  str1:= Form1.Memo2.Text;
  for i:= 1 to length(str1) do
  begin
    str2:= str2 + Сhr(StrToInt(str1[i]));
  end;
  Form1.Memo1.Text:= str2;
end;
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исключить из файла слово с минимальным количеством слогов. катя@90 Паскаль, Turbo Pascal, PascalABC.NET 2 11.12.2008 14:23
Считать из файла несколько массивов pascalC Общие вопросы C/C++ 13 20.10.2008 21:16
считать елементы файла в массив XfighT Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 14.01.2008 16:35
Считать определенную строку из файла DimkinStd Работа с сетью в Delphi 4 15.02.2007 22:30
как считать данные с Txt файла? Alar Общие вопросы Delphi 0 29.10.2006 20:12