Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 330
от 20.12.2005, 19:24

Администратор:Калашников О.А.
В рассылке:Подписчиков: 239, Экспертов: 50
В номере:Вопросов: 6, Ответов: 18


Вопрос № 31492: Подскажите, пожалуйста, как можно хранить пароли и текст так, чтобы пользователи не могли это посмтореть или изменить, однако чтобы моя программа могла это делать?...
Вопрос № 31495: Здрасвуйте! Мне необходимо создать базу данный, только не стандартную, а свою. Поэтому вопрос: как лучше хранить информацию в файлах? И где можно прочитать больше информации про алгоритмы шифрования данных?...
Вопрос № 31496: Здравствуйте! Как можно программно удалить какой-нибудь файл без лишних вопросов(вроде "Действительно хотите удалить такой-то файл") ..
Вопрос № 31509: Здравствуйте! Подскажите, пожалуйста. Прочитал что процедура read читает файл с числовыми зачениями без пробелов, и признаков конца строки. Так ли это? Т.е если у меня в фале записаны числа: 12 13 19 46 18 46 То вид программы: ...
Вопрос № 31517: Подскажите, пишу программу сохранения данных, введенных в таблицу. Файл res.txt не создается...данные не сохраняются... procedure TForm1.Button1Click(Sender: TObject); begin AssignFile(f, 'res.txt'); Rewrite(f); with Strin...
Вопрос № 31525: Здравствуйте! Как заполнить StringGrid если я не знаю заранее количество элементов. Т.е. сколько пользователь введет значений, столько и будет использоваться при расчете. var Form1: TForm1; f:TextFile; i:integer; s:ar...

Вопрос № 31.492
Подскажите, пожалуйста, как можно хранить пароли и текст так, чтобы пользователи не могли это посмтореть или изменить, однако чтобы моя программа могла это делать?
Отправлен: 14.12.2005, 20:16
Вопрос задал: Segor (статус: Посетитель)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, Segor!
Можно использовать обычный текстовый файл, только установить права на него, чтобы в него заглядывать могли только Вы. Этой возможностью обладают файловая система ОС WinNT и выше под названием NTFS.
9х в этом отношении - полный отстой. FAT32 - тоже самое.
Как дополнительная мера, пароли можно шифровать. Простейший метод шифрации - с помощью операции XOR. Про более сложные методы - пожалуйста в Яндекс или Гугл.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 14.12.2005, 20:29

Отвечает: Лучников Юрий Владимирович
Здравствуйте, Segor!

Чтобы не могли посмотреть - используйте криптографию.
Чтобы не могли изменить - использовать контрольную сумму, например CRC32.
Ответ отправил: Лучников Юрий Владимирович (статус: 4-ый класс)
Отправлен: 14.12.2005, 20:29

Отвечает: nimoid
Здравствуйте, Segor!

Используй шифрование, чтобы не могли посмотреть, а чтобы проверить, были ли данные изменены или нет - проверяй контрольную сумму (CRC32).

О защите информации можешь посмотреть в интернете - документации навалом (воспользуйся поисковиком).
---------
Перед тем как задать вопрос, поищи сначала сам ответ. Яндекс в руки и в перед... )
Ответ отправил: nimoid (статус: 6-ой класс)
Отправлен: 14.12.2005, 20:56

Отвечает: Татьяна
Здравствуйте, Segor!
Я делала так, использовала левую ветку реестра (обычно какую-нибудь системную, никак не связанную с вашей программой, но которая точно существует - это для того, чтобы не могли изменить, т.е. конечно могут, но для этого надо найти) и записывала туда зашифрованные данные (это для того, чтобы не посмотрели, если найдут). Если необходимо прислать, как работать с реестром, пишите на внутреннюю почту
---------
Нет ничего невозможного!!!
Ответ отправила: Татьяна (статус: 10-ый класс)
Отправлен: 14.12.2005, 21:35

Отвечает: Архангельский Андрей Германович
Здравствуйте, Segor!

Есть компонент DataFile, который работает также как файл .ini, но при этом имеет больше типов данных и шифрует файл данных, весит 20к, если хочешь вышлю
Ответ отправил: Архангельский Андрей Германович (статус: Студент)
Отправлен: 14.12.2005, 21:49

Отвечает: Schmak
Здравствуйте, Segor!
Ну уж совсем запретить просмотр я думаю будет сложно, но что мешает Вам шифровать сохраняемые данные. Хотя конечно не помешает сделать защиту от удаления файла с паролями. Типа если удалили файл, то прога не запускается.
---------
Не всё то Windows, что висит!
Ответ отправил: Schmak (статус: Студент)
Отправлен: 15.12.2005, 05:46


Вопрос № 31.495
Здрасвуйте! Мне необходимо создать базу данный, только не стандартную, а свою. Поэтому вопрос: как лучше хранить информацию в файлах? И где можно прочитать больше информации про алгоритмы шифрования данных?
Отправлен: 14.12.2005, 20:59
Вопрос задал: 007Makc (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: nimoid
Здравствуйте, 007Makc!

Ууу.... создать свою БД не так то и просто. Хотя... смотря для каких целей. Чем больше в вопросе информации, тем более точным будет ответ. ;-)
Давай я тебе приведу пример, как можно использовать простенькую "свою БД" ну скажем, для простенького тел. справочника, может тебе это и подойдет - см. приложение (но в этом варианте данные должны иметь строго определенную длину - не могут быть к примеру классом, длинной строкой, указателем или объектом).

Про алгоритмы шифрования данных ищи в интернете через поисковики. Их лучше всего реализовывать на ассемблере - наверно понятно почему. ;-) Или возьми готовые компоненты - их тоже много в инете.

Приложение:

---------
Перед тем как задать вопрос, поищи сначала сам ответ. Яндекс в руки и в перед... )

Ответ отправил: nimoid (статус: 6-ой класс)
Отправлен: 15.12.2005, 03:32
Оценка за ответ: 5
Комментарий оценки:
Спасибо, незнал что в файл (File of type) можно заносить несколько зиписей.

Отвечает: sir henry
Здравствуйте, 007Makc!
А стандартной базы данных и не бывает в принципе. Стандартный только формат хранения данных. Пожалуйста, переформулируйте фопрос и напишите, что именно Вы хотите сделать.
Про алгоритмы шифрования Вы можете прочитать, набрав в строке поиска в Яндексе или Гугле "алгоритмы шифрования".
Ответ отправил: sir henry (статус: Академик)
Отправлен: 15.12.2005, 04:49
Оценка за ответ: 2
Комментарий оценки:
В вопросе и спарашивается про стандарты хранения информации.


Вопрос № 31.496
Здравствуйте!
Как можно программно удалить какой-нибудь файл без лишних вопросов(вроде "Действительно хотите удалить такой-то файл")
Отправлен: 14.12.2005, 21:01
Вопрос задал: Dimon007 (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ataman N. N.
Здравствуйте, Dimon007!
Есть такая функция DeleteFile(FileName:String):Boolean;
Возвращает истину в случае удачного удаления.
При этом с удаляемого файла должен быть снят атрибут "только для чтения".
Ответ отправил: Ataman N. N. (статус: 4-ый класс)
Отправлен: 14.12.2005, 21:12

Отвечает: sir henry
Здравствуйте, Dimon007!
Нет ничего проще. Для этого используется функция:
DeleteFile(Имя_файла);
Ответ отправил: sir henry (статус: Академик)
Отправлен: 15.12.2005, 04:51

Отвечает: Schmak
Здравствуйте, Dimon007!
При помощи функции DeleteFile(filename:string)
---------
Не всё то Windows, что висит!
Ответ отправил: Schmak (статус: Студент)
Отправлен: 15.12.2005, 05:46

Отвечает: Golden Spider
Здравствуйте, Dimon007!
Есть функция DeleteFile(FileName:String) она возвращает True если файл успешно удалён, но не хочет удалять файлы с меткой "только чтение".


---------
Семь раз проверь, один раз откомпилируй!
Ответ отправил: Golden Spider (статус: 3-ий класс)
Отправлен: 15.12.2005, 22:08


Вопрос № 31.509
Здравствуйте!
Подскажите, пожалуйста. Прочитал что процедура read читает файл с числовыми зачениями без пробелов, и признаков конца строки. Так ли это? Т.е если у меня в фале записаны числа:
12 13
19 46
18 46
То вид программы:

var
Form1: TForm1;
F:TextFile;
M:array [1..6] of real;
i:integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
AssignFile (F,'prog.txt');
Reset(f);
i:=1;
while not EOF (F) and (i<=2) do
begin
Read(F,M[i]);
inc(i);
end;
CloseFile(F);
end;
Даст мне массив M:={12 13 19 46 18 46}?????????????
Кроме того вопрос реализации: при прогонке этой программы выдается ошибка: файл не найдем. Файл записан в том же катологе, что и исполняемый модуль, имеет то же имя:prog.txt . В чем ошибка?????????
Заранее спасибо
Отправлен: 14.12.2005, 22:56
Вопрос задал: Lazut4ik (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, Lazut4ik!
Вроде все правильно. Почему файл не найден, непонятно, раз файл существует (если он и в самом деле существует). Единственное, что можно предположить - Вы неправильно пишите имя файла. Попробуйте проверять его существование с помощью функции FileExists().
Ответ отправил: sir henry (статус: Академик)
Отправлен: 15.12.2005, 04:56


Вопрос № 31.517
Подскажите, пишу программу сохранения данных, введенных в таблицу. Файл res.txt не создается...данные не сохраняются...

procedure TForm1.Button1Click(Sender: TObject);
begin
AssignFile(f, 'res.txt');
Rewrite(f);
with StringGrid1 do
begin
for i := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
Writeln(F, Cells[i, k]);
end;
CloseFile(F);
end;

После нажания F9 просто ввожу данные в таблицу и нажимаю Button1, что делаю не правильно?
Отправлен: 15.12.2005, 01:32
Вопрос задала: Артемова Марина (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: nimoid
Здравствуйте, Артемова Марина!

Все верно. Только неизвестно как у тебя объявлена переменная F. Должна быть как var F: TextFile;

И еще... попробуй вместо AssignFile(f, 'res.txt'); написать AssignFile(f, ExtractFilePath(ParamStr(0)) + 'res.txt');
(возможно файл и создается, но в другом месте - такое бывает при смене текущего каталога программой... но это уже другая история ;-))
---------
Перед тем как задать вопрос, поищи сначала сам ответ. Яндекс в руки и в перед... )
Ответ отправил: nimoid (статус: 6-ой класс)
Отправлен: 15.12.2005, 04:33

Отвечает: sir henry
Здравствуйте, Артемова Марина!
Вам нцжно объявить переменные i и k, как вообще можно работать с необъявлеными переменными мне непонятно. :)
Все остальное вроде правильно. Файл должен создаваться в том же каталоге, где и программа лежит.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 15.12.2005, 05:04

Отвечает: Denisss
Здравствуйте, Артемова Марина!
А какая, при этом, возникает ошибка?
Может в действительности файл создается, только не в папке, где программа, а в папке, из которой запущена программа (через ярлык, например).
лучше использовать так:
AssignFile(f, ExtractFilePath(ParamStr(0)) + 'res.txt');
тогда файл будет точно создаваться в папке программы.
Кроме того, я бы не рекомендовал использовать глобальные переменные в этой процедуре. Объявите переменные f, i, k локально.
Ответ отправил: Denisss (статус: Специалист)
Отправлен: 15.12.2005, 08:30


Вопрос № 31.525
Здравствуйте!
Как заполнить StringGrid если я не знаю заранее количество элементов.
Т.е. сколько пользователь введет значений, столько и будет использоваться при расчете.
var
Form1: TForm1;
f:TextFile;
i:integer;
s:array of extended;
implementation

procedure TForm1.Button2Click(Sender: TObject);
begin
if SaveDialog1.Execute then
begin
assignfile(f,SaveDialog1.FileName);
rewrite(f);
SetLength(S,StringGrid1.RowCount-1);
for i:=1 to StringGrid1.RowCount-2 do
begin
S[i]:=StrToFloat(StringGrid1.Cells[0,i]);
writeln(f,S[i]:0:3);
end;
closefile(f);
end;
end;
Данная программа работает, но число строк здесь фиксированно при зраработке программы через свойство RowCount. Как этого избежать?
Отправлен: 15.12.2005, 07:58
Вопрос задала: Артемова Марина (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: nimoid
Здравствуйте, Артемова Марина!

Объясни плз конкретно, что тебе надо?

Как понять "Число строк здесь фиксированно при зраработке программы через свойство RowCount. Как этого избежать?" ???

Если надо добавить/удалить строку в StringGrid-e, то это можно сделать просто:

StringGrid1.RowCount := StringGrid1.RowCount + 1; // добавление строки
StringGrid1.RowCount := StringGrid1.RowCount - 1; // удаление строки

(Если это не то, объясни в мини-форуме данного вопроса - постараюсь ответить)
---------
Перед тем как задать вопрос, поищи сначала сам ответ. Яндекс в руки и в перед... )
Ответ отправил: nimoid (статус: 6-ой класс)
Отправлен: 15.12.2005, 08:17

Отвечает: sir henry
Здравствуйте, Артемова Марина!
А Вам никто не мешает ввести количество строк в уже работающей программе после того, как будет это количество известно.
TStringGrid.RowCount:=Количество_которое_Вам_стало_известно;
Только учтите, что самая первая строчка - это строка заголовков столбцов.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 15.12.2005, 09:13


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Архив рассылки
Отписаться
Вспомнить пароль

В избранное