Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 07.12.2018
Сообщений: 3
1

Сделать скрытым текстовый файл

20.03.2019, 20:47. Показов 1540. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.

Появилась проблема - хочу сделать подобие викторины, чтобы установщик загружал текстовый файл с вопросами, вар. ответов и верным ответом. Проблема в том, что любой желающий может посмотреть, что ему нужно Нужно скрыть таковой файл, или же предложите идею как сделать такой файл недоступным к открытию. Спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2019, 20:47
Ответы с готовыми решениями:

Текстовый файл в Pascal
Добрый день/вечер/ночь :) Есть программа uses Crt; const dividers = ; var s,temp: string;...

Создать текстовый файл с исходными данными любой размерности. Из текстового файла переписать числа в массив, типизированный файл. Сделать контрольный
Создать текстовый файл с исходными данными любой размерности. Из текстового файла переписать числа...

Используя стек, создать другой текстовый файл, в котором числа будут записаны в обратном порядке - Free Pascal
Создать текстовый файл, содержащий текстовую и числовую информацию. Используя стек, создать другой...

Текстовый файл содержит список фамилий и должность сотрудников. Сформировать текстовый файл, содержащий фамил
Текстовый файл содержит список фамилий и должность сотрудников. Сформировать текстовый файл,...

10
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,246
20.03.2019, 21:12 2
L_n_D, как сделать скрытый файл я не знаю,но можно в файл ввести набор букв,а через программы выводить нормальный текст
0
2351 / 1454 / 526
Регистрация: 07.04.2017
Сообщений: 4,784
21.03.2019, 00:12 3
Используйте директиву $resource.
Pascal
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
{$resource data.txt}//можно указать и путь к какой то папке
 
var data := new Dictionary<string, string>;
 
procedure LoadData;
begin
  var sr := new System.IO.StreamReader(GetResourceStream('data.txt'));//а тут надо писать всё равно только имя, без пути к файлу
  while not sr.EndOfStream do
  begin
    var l := sr.ReadLine;
    var a := l.Split(new string[](':::'), System.StringSplitOptions.None); // я выбрал в качестве разделителя вопроса и ответа. Его можно заменить на что угодно
    data[a[0].Trim] := a[1].Trim; // .Trim уберает пробелы в начале и конце обеих строк. Можете убрать, если у вас их нет, или если они вам нужны
  end;
  sr.Close;
end;
 
begin
  LoadData;
  
  foreach var kvp in data do
  begin
    writeln(kvp.Key);//.Key это Вопрос, .Value это ответ
    var ansv := ReadlnString;
    
    if ansv=kvp.Value then
      writeln('Правильный ответ!') else
      writeln($'Неправильно, ответ был {kvp.Value}');
    
  end;
  
end.
Теперь, если перед компиляцией положить такой файл с именем data.txt в папку с .pas файлом:
Код
   Вопрос 1   :::   Ответ 1   
   Вопрос 2   :::   Ответ 2
Этот файл сохранит внутрь готового .exe, откуда его достанет при запуске программы.
1
0 / 0 / 0
Регистрация: 07.12.2018
Сообщений: 3
21.03.2019, 12:25  [ТС] 4
Не работает. Выдаёт ошибку в строке с data[a[0].trim]... индекс находился вне границ массива. Есть решение?
0
2351 / 1454 / 526
Регистрация: 07.04.2017
Сообщений: 4,784
21.03.2019, 12:58 5
Это значит что у вас была пустая строка (или, по крайней мере, без разделителя).
Можно поставить проверку, чтоб если в строке нет разделителя (или лучше, если она пустая), чтоб её не читало.
0
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
24.03.2019, 19:45 6
боже, можно просто перевести текст в Base64 и обратно, в чем проблема?

Добавлено через 1 минуту
там же несколько строчек кода и готово
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,246
24.03.2019, 19:46 7
NSIFS211,так напишите эти строки)
0
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
24.03.2019, 19:58 8
Лучший ответ Сообщение было отмечено L_n_D как решение

Решение

Цитата Сообщение от Пс Посмотреть сообщение
как сделать скрытый файл я не знаю
приехали.

Pascal
1
 System.IO.File.SetAttributes('file.txt', System.IO.FileAttributes.Hidden);
и чтобы обратно сделать видимым, поменять Hidden на Normal

Добавлено через 43 секунды
Цитата Сообщение от Пс Посмотреть сообщение
так напишите эти строки)
перевести в base64? ждите

Добавлено через 3 минуты
Pascal
1
var a := System.Convert.ToBase64String(System.IO.File.ReadAllBytes('file.txt'));
Добавлено через 32 секунды
и ща напишу как сделать обратно

Добавлено через 1 минуту
Pascal
1
System.IO.File.WriteAllBytes('file1.txt', System.Convert.FromBase64String(a));
Добавлено через 18 секунд
вот и все

Добавлено через 2 минуты
переменная a содержит текст в Base64, эта хрень напрямую бабулями и малолетками не читается, можете быть спокойны
1
2351 / 1454 / 526
Регистрация: 07.04.2017
Сообщений: 4,784
24.03.2019, 20:02 9
base64 это всё равно не безопасно, потому что программ читающих эту кодировку много среди легко доступных, тот же Notepad++ может прочитать такой файл, если выбрать правильную кодировку. А вот чтоб вытащить ресурс из .exe надо уже быть хацкером и иметь специальные программы.
0
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
24.03.2019, 20:09 10
Цитата Сообщение от Sun Serega Посмотреть сообщение
base64 это всё равно не безопасно
могу написать код, который его зашифрует AES-256. надо?

Добавлено через 1 минуту
Цитата Сообщение от Sun Serega Посмотреть сообщение
чтоб вытащить ресурс из .exe надо уже быть хацкером и иметь специальные программы.
отрывки текста, вписанные в программный код при желании можно тоже прочитать блокнотом
0
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
25.03.2019, 17:52 11
Цитата Сообщение от Sun Serega Посмотреть сообщение
надо уже быть хацкером
кул

0
25.03.2019, 17:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2019, 17:52
Помогаю со студенческими работами здесь

дан текстовый файл.перенести в текстовый файл все строки, содержащие заданное слово
помогите пожалуйста решить задачу... условие:дан текстовый файл.перенести в текстовый файл все...

ПУСТЬ это текстовый файл, который содержит НЕСКОЛЬКО ЦЕЛЫХ ЧИСЕЛ. ОТКРЫТЬ этот текстовый файл и КАЖДЫЙ С ЧИСЕЛ вознести В КУБ.
ПУСТЬ это текстовый файл, который содержит НЕСКОЛЬКО ЦЕЛЫХ ЧИСЕЛ. ОТКРЫТЬ этот текстовый файл и...

Дано число k и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк
И снова всем привет) Помогите пожалуйста со следующим заданием: Дано число k (&lt;10) и текстовый...

Дан текстовый файл F. Переписать файл F в файл G, вставляя в конец каждой строки ее порядковый номер.
решите)


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru