Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/38: Рейтинг темы: голосов - 38, средняя оценка - 5.00
so1o
33 / 33 / 5
Регистрация: 16.11.2009
Сообщений: 206
#1

что такое типизированный файл?

30.05.2010, 01:03. Просмотров 6865. Ответов 26
Метки нет (Все метки)

что это такое? и как с ним работать?

Добавлено через 24 минуты
хелп народ...

Добавлено через 52 минуты
неужели никто не знает?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2010, 01:03
Ответы с готовыми решениями:

Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите ...

Что такое h -файл и obj-файл?Зачем они нужны?
1.Что такое h -файл и obj-файл?Зачем они нужны?

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с...

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое файл с расширением cpp?
Процмем.цпп ProcMem.cpp Что это? Добавлено через 18 минут Может кто...

26
PointsEqual
ниначмуроФ
839 / 523 / 110
Регистрация: 12.10.2009
Сообщений: 1,915
30.05.2010, 03:03 #2
Это такой вид файлов, в котором содержатся записи одного типа и фиксированной длины.
1
so1o
33 / 33 / 5
Регистрация: 16.11.2009
Сообщений: 206
30.05.2010, 15:34  [ТС] #3
и как их редактировать?

Добавлено через 1 час 6 минут
Компоненты типизированного файла – целочисленные массивы, состоящие из 3 элементов. Записать в новый текстовый файл тот массив, сумма элементов которого максимальна.
если я правильно понял, сначала надо создать этот файл и внести эти массивы, потом читать же из него и в текстовый...
только я не понимаю одного, как работать с типизированными файлами, я их абсолютно не представляю...!!!

Добавлено через 11 часов 23 минуты
ап ап
0
fasked
Эксперт С++
4981 / 2560 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
30.05.2010, 16:01 #4
Цитата Сообщение от so1o Посмотреть сообщение
только я не понимаю одного, как работать с типизированными файлами, я их абсолютно не представляю...!!!
со всеми файлами работают по одним и тем же принципам. открываешь бинарно и читаешь. "типизированный" не делает его каким-то особенным. только контент устойчив. файл он и есть файл.
0
so1o
33 / 33 / 5
Регистрация: 16.11.2009
Сообщений: 206
30.05.2010, 16:12  [ТС] #5
а откуда его взять?? как его редактировать?? я вообще не представляю что это такое..
0
fasked
Эксперт С++
4981 / 2560 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
30.05.2010, 16:17 #6
Цитата Сообщение от so1o Посмотреть сообщение
а откуда его взять?? как его редактировать?? я вообще не представляю что это такое..
блин. я же говорю тебе. это обычный файл! создай его сам. ты думаешь для него надо какое-то особе расширение? нет! от всех других файлов он отличается только тем, что ты заранее знаешь его структуру.

Добавлено через 2 минуты
Цитата Сообщение от so1o Посмотреть сообщение
Компоненты типизированного файла – целочисленные массивы, состоящие из 3 элементов
содержимое файла выглядеть будет примерно так:
Код
1 2 3
4 5 6
7 8 9
9 10 11
11 12 13
хотя учитывая, что число элементов в каждом массиве нам известно можно и в строчку написать просто (но это неудобно для восприятия человеком):
Код
1 2 3 4 5 6 7 8 9
1
so1o
33 / 33 / 5
Регистрация: 16.11.2009
Сообщений: 206
30.05.2010, 19:51  [ТС] #7
я могу с ним работать как с обычным текстовым??

Добавлено через 5 минут
или так, кто нить скиньте мне типизированный файл, и всё!!!
ну чтобы там был массив из элементов кратных 3...
0
Evg
Эксперт CАвтор FAQ
19277 / 7134 / 528
Регистрация: 30.03.2009
Сообщений: 19,976
Записей в блоге: 30
30.05.2010, 20:04 #8
so1o, тебе уже пояснили, что физический файл - он и в африке файл. Я не знаю, что такое типизированный, но если в посте #2 тебе объяснили правильно, то "типизированный" - это логическое понятие. Такое же логическое, как "файл, состоящий из одних нулей", "файл размером 10 байт" или "файл, созданный в среду чётного числа". Любой из этих файлов ты можешь редактировать, крутить-вертеть, удалять, слать по почте и т.п.

Цитата Сообщение от so1o Посмотреть сообщение
Компоненты типизированного файла – целочисленные массивы, состоящие из 3 элементов.
Пример такого файла тебе привели в посте #6

Добавлено через 1 минуту
Цитата Сообщение от so1o Посмотреть сообщение
или так, кто нить скиньте мне типизированный файл, и всё!!!
Запиши в файл три целочисленных числа - вот тебе и типизированный файл того типа, что у тебя описан в посте 3
2
fasked
Эксперт С++
4981 / 2560 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
30.05.2010, 20:05 #9
Цитата Сообщение от so1o Посмотреть сообщение
я могу с ним работать как с обычным текстовым??
да!
Цитата Сообщение от so1o Посмотреть сообщение
или так, кто нить скиньте мне типизированный файл, и всё!!!
ну чтобы там был массив из элементов кратных 3...

давай начнем с основ. что такое файл по-твоему мнению? чем отличается текстовый файл от бинарного? зачем файлу расширение?
чем отличаются 2 файла с таким содержанием:
file.txt
Код
01234567890

file.dat
Код
01234567890
1
so1o
33 / 33 / 5
Регистрация: 16.11.2009
Сообщений: 206
30.05.2010, 20:08  [ТС] #10
ну файл это данные, которые хранятся где-то на диске компьютера.
а бинарный как я понял тоже самое что и текствоый, только данные записаны в последовательности битов??
а на счет этих файлов, я не знаю.. наверно ничем
0
fasked
Эксперт С++
4981 / 2560 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
30.05.2010, 20:11 #11
Цитата Сообщение от so1o Посмотреть сообщение
а бинарный как я понял тоже самое что и текствоый, только данные записаны в последовательности битов??
да и текстовый файл это тоже последовательность битов (но тут с точки зрения программирования на Си/Си++ есть небольшие нюансы)
Цитата Сообщение от so1o Посмотреть сообщение
а на счет этих файлов, я не знаю.. наверно ничем
вот именно! ничем! также и типизированный файл от обычного текстового не отличается ничем, так что создавай этот файл и работай с ним, так же и расширение ты ему можешь дать любое - разницы никакой!
1
so1o
33 / 33 / 5
Регистрация: 16.11.2009
Сообщений: 206
30.05.2010, 20:13  [ТС] #12
ЧОРТ!! я сбит с толка!!
зачем тогда в условии написали типизированный файл??!
0
fasked
Эксперт С++
4981 / 2560 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
30.05.2010, 20:37 #13
Цитата Сообщение от so1o Посмотреть сообщение
зачем тогда в условии написали типизированный файл??!
видимо это должно облегчить задачу, так как не надо делать различные проверки на правильность данных. Все данные из файла считаются заведомо верными. Так, например, для матриц, ты уже заранее знаешь какого размера матрица и ты можешь смело пользоваться статическими массивами определенного размера 3x3.
1
so1o
33 / 33 / 5
Регистрация: 16.11.2009
Сообщений: 206
30.05.2010, 20:49  [ТС] #14
ура, последний вопрос
а как туда занести этот массив?)
спасибо тебе огромное =)

Добавлено через 7 минут
или так. могу ли я создать заранее некий файл, а потом через блокнот отредактировать и дальше с ним работать??
0
fasked
Эксперт С++
4981 / 2560 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
30.05.2010, 20:58 #15
вот решение для твоей задачи, если я его правильно понял
C
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <stdlib.h>
#include <stdio.h>
#include <memory.h>
 
#define SIZE 3
 
int main()
{
   // counts
   int i = 0, j = 0; 
   // file
   char * file_name = "in.txt";
   FILE * fin = NULL;
   // arrays
   int narr[SIZE];
   int ntmp[SIZE];
   // sum
   long sum = 0;
 
   // open file
   if((fin = fopen(file_name, "rb")) == NULL) {
      perror("can't open file");
      abort();
   }
 
   while(!feof(fin))
   {
      // read data
      for(i = 0; i < SIZE; ++i)
         fscanf(fin, "%d ", &ntmp[i]);
 
      // check sum
      long ntsum = 0;
      for(i = 0; i < SIZE; ++i)
         ntsum += ntmp[i];
   
      // copy array
      if(ntsum > sum) 
      {
         sum = ntsum;
         memcpy(narr, ntmp, SIZE * sizeof(int));
      }
   }
 
   // close file
   fclose(fin);
 
   // display max array
   for(i = 0; i < SIZE; ++i)
      printf("%d ", narr[i]);
   printf("\nitem sum: %d\n", sum);
 
   return 0;
}
in.txt
Код
1 1 1
2 2 2
5 5 5
3 3 3
4 4 4
1
so1o
33 / 33 / 5
Регистрация: 16.11.2009
Сообщений: 206
30.05.2010, 21:11  [ТС] #16
ну спасибо конечно ...
я хотел сам сделать

Добавлено через 2 минуты
что такое мемори.ш ??
0
fasked
Эксперт С++
4981 / 2560 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
30.05.2010, 22:14 #17
Цитата Сообщение от so1o Посмотреть сообщение
ну спасибо конечно ...
я хотел сам сделать

Добавлено через 2 минуты
что такое мемори.ш ??
наличие моего примера никак не должно мешать тебе попробовать сделать это самому.

в memory.h находятся функции для работы с памятью. конкретно в этом примере используется функция memcpy, для копирования одного участка памяти в другой
0
easybudda
Модератор
Эксперт CЭксперт С++
10053 / 5973 / 1493
Регистрация: 25.07.2009
Сообщений: 11,310
31.05.2010, 03:42 #18
Цитата Сообщение от fasked Посмотреть сообщение
конкретно в этом примере используется функция memcpy
Я Вас удивлю, но memcpy() находится в string.h. Кстати, тоже голову ломал, что тут memory.h делает...

Добавлено через 6 минут
fasked, кстати, ещё интересный момент - gcc Ваш код компилит без проблем. И ворде бы програмка работает... А вот мелкомягкий cl вот такую ересь пишет:
Код
C:\cpp\other>cl fasked001.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

fasked001.c
fasked001.c(21) : warning C4996: 'fopen' was declared deprecated
        C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\stdio.h(234) : see
 declaration of 'fopen'
        Message: 'This function or variable may be unsafe. Consider using fopen_
s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help
 for details.'
fasked001.c(30) : warning C4996: 'fscanf' was declared deprecated
        C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\stdio.h(249) : see
 declaration of 'fscanf'
        Message: 'This function or variable may be unsafe. Consider using fscanf
_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online hel
p for details.'
fasked001.c(33) : error C2143: syntax error : missing ';' before 'type'
fasked001.c(35) : error C2065: 'ntsum' : undeclared identifier

C:\cpp\other>
На параноидальные предупреждения про fprintf()/fscanf() внимание можно не обращать, а вот где он там какой ';' недосчитался - я так и не понял. Странно, короче...
0
fasked
Эксперт С++
4981 / 2560 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
31.05.2010, 07:05 #19
Цитата Сообщение от easybudda Посмотреть сообщение
Я Вас удивлю, но memcpy() находится в string.h. Кстати, тоже голову ломал, что тут memory.h делает...
может быть теперь и я вас в свою очередь удивлю
на том же MSDN о функции mempcy написано Required header: <memory.h> or <string.h>. то есть нет разницы какой заголовок подключать. но я из своих каких-то предпочтений для функций, связанных с работой с памятью (которые начинаются с префикса mem) подключая memory.h, а для функций, связанных конкретно со строками (str) подключаю string.h. просто так больше нравится =)
хотя в mingw заголовок memory.h содержит всего лишь #inlude <string.h> =) в MS уже побольше всего...
Цитата Сообщение от easybudda Посмотреть сообщение
На параноидальные предупреждения про fprintf()/fscanf() внимание можно не обращать, а вот где он там какой ';' недосчитался - я так и не понял. Странно, короче...
действительно странно. видимо надо объявление переменной long ntsum вынести наверх.
0
taras atavin
4204 / 1765 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
31.05.2010, 07:09 #20
Цитата Сообщение от PointsEqual Посмотреть сообщение
Это такой вид файлов, в котором содержатся записи одного типа и фиксированной длины
Только одного типа. Длина записей определяется типом, а не значениями.
0
31.05.2010, 07:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2010, 07:09

Что такое хэндлер файла? Что такое файловый указатель?
Что такое хэндлер файла? Что такое файловый указатель?

как в с++ создается типизированный файл? и как вообще понять типизированный?
вопрос в теме

не типизированный файл
Дан текстовый файл f. Переписать в файл g все компоненты файла f с заменой в...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru