Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/12: Рейтинг темы: голосов - 12, средняя оценка - 4.75
 Аватар для Piratcom
21 / 21 / 3
Регистрация: 05.08.2009
Сообщений: 243

Проблема с типизированным файлом

15.09.2009, 20:06. Показов 2349. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте, не могу открыть типизированный файл для добавления данных, курсор встаёт на оператор Append(f); говорит о несоответствии форматов. Файл f: File of integer; как решить эту прблему?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.09.2009, 20:06
Ответы с готовыми решениями:

Работа с типизированным файлом
Задача Дан типизированный файл, состоящий из целых чисел. записать в другой файл все точные квадраты из первого файла. мой...

Работа с типизированным файлом
Уважаемые, вообщем такая задача, динамически создаю на форме компоненты, предположим там парочка Timage и парочка RichEdit, они имеют свой...

Работа с типизированным файлом в программе тестирования
Помогите плиз . Есть файл test.dat в котором содержатся вопроси и ответы примерно так "Вопрос 1 ответ ответ ответ ответ ...

15
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1107 / 622 / 139
Регистрация: 31.03.2009
Сообщений: 2,567
15.09.2009, 20:34
так те никто непоможет выкладывай весь свой код
0
 Аватар для Piratcom
21 / 21 / 3
Регистрация: 05.08.2009
Сообщений: 243
15.09.2009, 20:42  [ТС]
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var
  MainForm: TMainForm;
  f: File of integer; // файл
  fName: String[80]; // имя файла
 
procedure TMainForm.Button2Click(Sender: TObject);
begin
  if OpenDialog.Execute then
  begin
  fName:=OpenDialog.FileName;
  AssignFile(f, fName);
  Append(f); //В этом операторе несоответствие форматов.
  //добавляем данные в файл
  CloseFile(f);
  end;
end;
0
 Аватар для koma_grusha
28 / 29 / 0
Регистрация: 17.04.2009
Сообщений: 73
15.09.2009, 20:58
Delphi
1
Append(f);
для открытия кажись есть Reset
0
 Аватар для Piratcom
21 / 21 / 3
Регистрация: 05.08.2009
Сообщений: 243
15.09.2009, 21:01  [ТС]
Хм... А почему тогда этот код ошибку не вызывает?
Delphi
1
2
3
4
5
6
7
8
  if OpenDialog.Execute then
  begin
  fName:=SaveDialog.FileName;
  AssignFile(f, fName);
  Rewrite(f); //Открываем файл для создания или перезаписи
  //добавляем данные в файл
  CloseFile(f);
  end;
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
15.09.2009, 21:16
Append(f); //В этом операторе несоответствие форматов.
Это для текстовых файлов. А для типизированных типа так.
Delphi
1
2
3
reset(f);
seek(filesize(f));//новая запись будет последней.
write(f,a);
1
 Аватар для Piratcom
21 / 21 / 3
Регистрация: 05.08.2009
Сообщений: 243
15.09.2009, 21:27  [ТС]
Спасибо, я примерно так и представлял... В учебниках описание функций для работы с типизир. файлами есть, а пример работы только с TextFile...
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
15.09.2009, 22:02
Читайте учебники по Паскалю, или просто в Гугле наберите Типизированные файлы, там есть статьи где этот вопрос рассматривается конкретно и лучше чем в учебниках.
1
 Аватар для Piratcom
21 / 21 / 3
Регистрация: 05.08.2009
Сообщений: 243
16.09.2009, 15:12  [ТС]
Спасибо, всё работеает, только надо в функции ещё файл указывать, вот так: seek(f,FileSize(f));
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
16.09.2009, 15:17
Вы абсолютно правы, упустил.
0
 Аватар для cactus25
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 19
06.03.2010, 22:00
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
procedure TForm1.Button1Click(Sender: TObject);
var f1: textfile;  f2:file of integer;
    rasx, dox, day, month, year, balans: integer;
begin
  assignfile (f1, 'file1.txt');
  assignfile (f2, 'file2.dat');
   reset (f1);
   read (f1, balans);
   closefile(f1);
  rewrite (f1);
   rasx:=StrToInt(Edit2.Text);
   dox:=StrToInt(Edit1.Text);
   write (f1, balans+dox-rasx);
  closefile (f1);
  reset (f2);
   seek(f2, filesize(f2)); /// хочу поставить курсор в конец
   day:=StrToInt(Edit3.Text);
   month:=StrToInt(Edit4.Text);
   year:=StrToInt(Edit5.Text);
   write (f2, day, month, year, dox, rasx);
  closefile (f2)
  label1.caption:='Разница = '+IntToStr(dox-rasx);
  label2.caption:='Баланс = '+IntTostr (dox-rasx+balans);  
end;
однако в seek(f2, filesize(f2)) на filesize(f2) выдает Error: Incompatible type for arg no. 1: Got "File Of LongInt", expected "AnsiString"

Help!
0
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,892
06.03.2010, 22:20
cactus25, а задача в чем собственно-то?

Добавлено через 15 минут
Delphi
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
var f1: textfile;
    f2: file of integer;
    rasx, dox, day, month, year, balans: integer;
begin
  assignfile (f1, 'file1.txt');
   reset (f1);
   read (f1, balans);
 
  rewrite (f1);
   rasx:=StrToInt(Edit2.Text);
   dox:=StrToInt(Edit1.Text);
   write (f1, balans+dox-rasx);
  closefile (f1);
 
  assignfile (f2, 'file2.dat');
  reset (f2);
   seek(f2, filesize(f2)); /// хочу поставить курсор в конец
   day:=StrToInt(Edit3.Text);
   month:=StrToInt(Edit4.Text);
   year:=StrToInt(Edit5.Text);
   write (f2, day, month, year, dox, rasx);
  closefile (f2);
  label1.caption:='Разница = '+IntToStr(dox-rasx);
  label2.caption:='Баланс = '+IntTostr (dox-rasx+balans);
end;
У мя все компилится
0
 Аватар для cactus25
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 19
06.03.2010, 23:06
у меня не компилируется... может lazarus тупит?... пойду на винду дельфи скачаю, посмотрю что там
0
 Аватар для Mawrat
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
07.03.2010, 03:45
По поводу перемещения файлового указателя в конец файла:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
...
  //Файл объявлен, как типизированный файл, элементами которого являются данные типа Integer.
  //Это означает, что минимальной единицей обмена информации с файлом являются
  //блоки размером SizeOf(Integer) = 4 байта.
  f2 : file of integer;
...
begin
  //Второй параметр процедуры Seek() задаёт смещение относительно начала файла.
  //Это смещение исчисляется в минимальных блоках - т. е. в элементах типа Integer.
  //Поэтому, чтобы переместить файловый указатель в конец файла необходимо заменить строку:
  //seek(f2, filesize(f2));
  //на:
  seek(f2, filesize(f2) div SizeOf(Integer));
0
 Аватар для cactus25
0 / 0 / 0
Регистрация: 03.03.2010
Сообщений: 19
07.03.2010, 16:07
FileSize же дает размер в компонентах?..
И все равно не работает, ошибка возникает после Filesize(f2)

PS что бы проект, сделанный в Lazarus запустить в Delphi нужен только .pas или еще что-то?
0
 Аватар для Mawrat
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
07.03.2010, 17:00
Цитата Сообщение от cactus25 Посмотреть сообщение
FileSize же дает размер в компонентах?
Верно. Я ошибся.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.03.2010, 17:00
Помогаю со студенческими работами здесь

Работа с типизированным файлом (Turbo Delphi)
Помогите пожалуйста написать программы в turbo delphi, я на экзамене, очень прошу!!!! Создать подпрограммы: Создание типизированного...

Работа с типизированным файлом целых чисел
Разработать приложение, которое позволяет считывать типизированный файл целых чисел. Реализовываться два вида обработки файла. Первый – все...

Работа с типизированным файлом (Сведения о приборах в лаборатории)
Доброго времени суток! Столкнулся с проблемой при реализации программы со следующим условием: Условие задачи: Разработайте программу...

Пользовательский интерфейс для работы с типизированным файлом
Подскажите идею пользовательского интерфейса для работы с типизированным файлом. Функции: Открывать, Изменять, Сохранять.

Работа с типизированным файлом: запись Шестнадцатеричного значения из Edit1 в файл
Здравствуйте ! надеюсь на помощь профи. Суть проблемы такая: задание было написать программу, которая работает с типизированным файлом...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru