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

RusFAQ.ru: Программирование на языке Pascal


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


RusFAQ.ru: Программирование на языке Pascal

Выпуск № 257
от 18.03.2004, 21:10

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 436
Отправлено ответов: 1602
Активность: 367.4 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Ayl
Статус: Профессиональный
Общий рейтинг: 116.61
[Подробней >>]
Snowm@n
Статус: Доверительный
Общий рейтинг: 115.81
[Подробней >>]
Strory
Статус: Доверительный
Общий рейтинг: 160
[Подробней >>]
 
sir henry
Статус: Профессиональный
Общий рейтинг: 158.58
[Подробней >>]
samum2000
Статус: Профессиональный
Общий рейтинг: 131.44
[Подробней >>]
Boriss
Статус: Профессиональный
Общий рейтинг: 155.57
URL: Программирование на Паскале
[Подробней >>]
 
Tancho
Статус: Профессиональный
Общий рейтинг: 150.7
Телефон: сл. 0359 0391 65 631; 0359 0391 53 105
[Подробней >>]
Pawel
Статус: Профессиональный
Общий рейтинг: 163.71
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 432. Уважаемые эксперты: Мне нужна Ваша помощь. Имеется типизированный файл состоящий из записей. Дело в... (ответов: 8)

Вопросов: 1, ответов: 8


 Вопрос № 432

Уважаемые эксперты:
Мне нужна Ваша помощь. Имеется типизированный файл состоящий из записей. Дело в том что когда я открыл файл для просмотра его содержимое было следующим: файл начинается с того что 100 первых байт занимает информация о компании после чего начинаются записи, которые я очень хорошо смог отличить. Когда я начал читать этот файл содержимое читаемых записей естественно было совершенно абсурдным. Когда я удалил 100 первых байт все было нормально. Так вот скажите пожалуйста как прочитать этот файл не ужаляя 100 первых байт? Это очень важно.
С уважением,
dude
P.S Программирую на Borland Delphi(Object Pascal).



Вопрос отправлен: 15.03.2004, 21:04
Отправитель: dude (einstein_ms@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Приветствую Вас, dude!
Тебе нужно открывать файл как нетипизированный. См. Приложение.


Приложение:

Ответ отправлен: 16.03.2004, 16:15
Отправитель: Ayl


Отвечает Snowm@n

Здравствуйте, dude!
Пусть количество записей N и неизменно, тогда сделай следующее:
type tunit=record
... //твоя запись
end;
type tfile=record
info:array [1..100] of byte;
unit:array [1..n] of tunit;
end;
var f:file of tfile;
data:tfile;
begin
assignfile(f,'...');
reset(f);
read(f,data);
close(f);
... //используешь data
end.

Ответ отправлен: 16.03.2004, 10:57
Отправитель: Snowm@n


Отвечает Strory

Доброе время суток, dude!
Такой файл Вы, конечно, прочитать не сможете. Я так понимаю, что файл нужно оставить в первозданном виде, поэтому инфу о компании удалять нельзя. Тогда первое, что приходит в голову - это пропустив первые сто байт переписать остальное в другой файл (всё это, естественно программно, а не вручную) и работать уже с ним.
И овцы целы, и волки сыты :)


Ответ отправлен: 16.03.2004, 18:27
Отправитель: Strory


Отвечает sir henry

Добрый день, dude!
Типизированый файл - это не текстовый файл. Поэтому отнеситесь к этой задаче с более нормальной головой :)).

Ответ отправлен: 16.03.2004, 08:43
Отправитель: sir henry


Отвечает samum2000

Приветствую вас,dude!
Раз программируете на Delphi, то и пишите в рассылку по Delphi. И допишите туда кусочек кода с примером того, как вы копируете и описанием записи.
--------------------------
-=Experts helper: testmode=-

Ответ отправлен: 16.03.2004, 12:00
Отправитель: samum2000


Отвечает Boriss

Добрый день, dude!
Все можно решить с помощью BlockRead
Там указывается куда читать и сколько читать
Естественно, что файл должен быть открыт как нетипизированный (var F: File) и открыт Reset(f,1); - то есть читаешь побайтно
А далее, заголовок читаешь в одно место (типа Record), а все остальное - в другое

Ответ отправлен: 16.03.2004, 17:51
Отправитель: Boriss


Отвечает Tancho

п”пѕп±яЂя‹п№ пґпµпЅяЊ, dude!
пЎп°пјпѕпµ пЅп°пґпµп¶пґпЅпµпµ:
1) пћя‚пєяЂпѕп№ я„п°п№п» пєп°пє пЅпµя‚пёпїпёп·пёяЂпѕпІп°пЅпЅя‹п№, пїпµяЂпµпїпёя€пё пЅп°я‡пёпЅп°яЏ яЃ
101-пѕпј п±п°п№я‚п° пІяЃяЏ пёпЅя„пѕяЂпјп°я†пёяЏ пІ пґяЂяѓпЁпѕп№ я„п°п№п»;
2) пџпѕя‚пѕпј пѕя‚пєяЂпѕп№ пїпѕп»яѓя‡пµпЅя‹п№ я„п°п№п» пєп°пє я‚пёпїпёп·пёяЂпѕпІп°пЅпЅя‹п№ яЃ п·п°пїпёяЃпё, пєпѕя‚пѕяЂя‹пµ я‚я‹ пѕя‡пµпЅяЊ я…пѕяЂпѕя€пѕ яЃпјпѕпЁ пѕя‚п»пёя‡пёя‚яЊ;
пўп°пє пІяЃпµ п±яѓпґпµя‚яЊ пЅпѕяЂпјп°п»пЅпѕ.

Ответ отправлен: 18.03.2004, 14:28
Отправитель: Tancho


Отвечает Pawel

Доброе время суток, dude!
Assign (f,'1.txt');
Reset(f);
Seek (f, 100); прыжок на 100 байт
И далее читаем через read(f,a)

Ответ отправлен: 16.03.2004, 20:05
Отправитель: Pawel



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


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


Получить ответов:


 Выбор рассылки

Программисту
Assembler (27)
C / C++ (20)
Perl (4)
Builder / Delphi (20)
Pascal (23)
Basic / VBA (7)
Java / JavaScript (7)
PHP (13)
Криптография (8)
WinAPI (17)
Радиоэлектроника (9)
Пользователю
Windows 95/98/Me (43)
Windows NT/2000/XP (58)
"Железо" (35)
Поиск информации (21)
Администратору
Windows NT/2000/XP (28)
Linux / Unix (13)
Юристу
Гражданское право (13)
Семейное право (12)
Трудовое право (12)
КоАП (9)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное