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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2012, 22:37   #1
proert
 
Регистрация: 26.09.2012
Сообщений: 7
По умолчанию База данных. Язык свободный.

Строки текстового файла содержат фамилии студентов.
Определить порядковый номер байта, начиная с которого
располагается первая по алфавиту фамилия. Заменить данную
фамилию в исходном файле символами '*', не переписывая этого
файла.
Есть вопрос, как изменить не переписывая.Или сделать обращение по номеру байта и изменение его. Язык программирования свободный но я думаю использовать Дельфи для сортировки.
proert вне форума Ответить с цитированием
Старый 26.09.2012, 22:47   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,371
По умолчанию

Цитата:
Есть вопрос, как изменить не переписывая.
Если изготовить типизированный файл, с подходящей структурой, то можно читать элемент структуры, вносить изменения и возвращать его в файл, не переписывая весь файл (что непременно придётся делать с текстовым файлом)





Как-то так ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 26.09.2012, 23:15   #3
proert
 
Регистрация: 26.09.2012
Сообщений: 7
По умолчанию

Как я понял тут нужно немного по другому.Нужно использовать только этот файл и выводить с заменой адреса одних байт на другие.
proert вне форума Ответить с цитированием
Старый 26.09.2012, 23:44   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,371
По умолчанию

Отводите под фамилию, можно с именем и отчеством, некоторое число байт (строка).
Код:
Type FIO_Student = string[30];
Пример ниже только как вариант, когда запись об одном студенте - блок.
Код:
var fh : file of FIO_Student;
Формируете файл из блоков (компонентные файлы), размер которых равен длине строки.
Сколько студентов, столько и блоков будет записано в файл.

Далее запрашиваем фамилию.
Открываем файл на блочное чтение и запись.
Читаете первый блок и если ФИО не соответствует, то читаете следующий (цикл типа While NOT Eof(fh) do ).
Как только нашли нужную фамилию,
возвращаемся на один блок назад - функция seek(fh, -1)
и записываем константную строку '****************' нужной длинны
Файл можно закрыть.


Что-то вроде этого ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 28.09.2012, 10:34   #5
proert
 
Регистрация: 26.09.2012
Сообщений: 7
По умолчанию

Можно еще кода, не совсем понял куда втиснуть
proert вне форума Ответить с цитированием
Старый 28.09.2012, 11:55   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я могу вам такой пример написать. хоть на старом добром ТурбоПаскале, хоть (проще, быстрее, надежднее, удобнее, мощнее) на Delphi..

три вопроса.
1-й - зачем?!!! это Вам надо?!
2-й. в какой кодировке будет текстовый файл?
3-й. БОЛЬШИЕ-маленькие (точнее, прописные и строчные) буквы при поиске первого по алфавиту нужно различать?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.09.2012, 14:28   #7
proert
 
Регистрация: 26.09.2012
Сообщений: 7
По умолчанию

1 Не могу понять, как организовать поиск по битам и замена значения по номеру.
2 Не имеет значения.
3 Буквы не обязательно различать.
proert вне форума Ответить с цитированием
Старый 30.09.2012, 12:39   #8
proert
 
Регистрация: 26.09.2012
Сообщений: 7
По умолчанию

Лучше на Delphi.
proert вне форума Ответить с цитированием
Старый 03.10.2012, 21:07   #9
proert
 
Регистрация: 26.09.2012
Сообщений: 7
Восклицание

Неужели никто не знает?
proert вне форума Ответить с цитированием
Старый 03.10.2012, 22:47   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я знаю.. если завтра будет минутка - набросаю вам примерчик..

я давно собирался это написать, а потом и позабылось, да и решил, что за три дня Вы уже сами всё расковыряли..
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
База данных и технология хранения данных Kate1 Помощь студентам 2 17.11.2011 23:27
Свободный ввод данных Eldrich JavaScript, Ajax 5 13.04.2011 18:06
Небольшая база в Open Office База данных. sashaman Фриланс 3 11.04.2010 20:13
База данных с возможностью приема данных из файлов Excel Al_Sha БД в Delphi 6 16.10.2009 15:34
Русский язык и база данных MqSQL Linel PHP 1 25.02.2009 18:00