![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
Приве всем.
Я хочу записать в файл число типа float. (массивы через структуры мне не надо, т.к это поэлементное считывание) а у меня в файле будет тысячи чисел. Строку занести в файл тоже могу, а вот числа никак не получается. Подскажите как это осуществить? |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
так а в чем проблема?
пишем WriteFile(hFile, (char*)number, sizeof(double), &numberOfBytesWritten, NULL); и все... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
А можно на конкретном примере?
float number=50; DWORD numberOfBytesWritten; |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
дык:
в чем проблема-то? -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Doc_d0s |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 15.12.2004 Где: в кресле Репутация: нет Всего: 3 |
(char*)number а как он флоат к строке приведет? не особо понятен механизм:? может лучше взять функцию из серии Atof? --------------------
Админ- это вождь Apache'й :) |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
[_hunter]
На строке WriteFile(hFile, (char*)number, sizeof(number), &numberOfBytesWritten, NULL); пишет ошибку Incompatible type conversion Если использовать atof (такая же ошибка: ) |
|||
|
||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 10 Всего: 124 |
WriteFile(hFile, (void*)&number, sizeof(number), &numberOfBytesWritten, NULL);
// можно и char* оставить... если компилер не заругается... Это сообщение отредактировал(а) SergeCpp - 17.4.2006, 21:11 |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
SergeCpp
Компилит нормально только в файл какую-то лабуду скидывает. У меня такое же было (массивы через структуры, там поэлементное считывание) А можно ли считать весь файл? |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
Нашёл ответ (на VINGRADe)
Тему можно закрывать |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Так бы сразу и сказал, что тебе в текстовом виде надо... Функций преобразования числа в строку - тьма. Начиная от найденного тобою gcvt до sprintf...
-------------------- ... |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
У меня возник вопрос
А как записать значение (число) на следующую строку В ФАЙЛЕ (на вторую) а так всё записывает на первую.( for не помогает) |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
пиши после числа 0х0D0A
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
А можно по-конкретнее(после какого числа)
|
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
после
WriteFile(hFile,buf,7,&numberOfBytesWritten, NULL); напиши WriteFile(hFile, "\r\n", 2, &numberOfBytesWritten, NULL); ( или наоборот ) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
hunter спасибо
На другой проге пошло, на этой не хочет.(странно) У меня вот возник вопрос по этой теме А можно ли считать с файла весь текст (а не каждый элемент по отдельности). Инфы на эту тему у меня слишком мало. |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
можно. ReadFile в соотв. буффер.
непонятно какая инфа ( кроме той, что есть в MSDN тебе нужна ) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
ferum |
|
||||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
hunter тебе:
У меня вопрос по предыдущей теме Прога идёт!
А эта нет
Error: в строке WriteFile(hFile,"\r\n",2,&number, NULL); Если убрать в обоих прогах WriteFile(hFile,"\r\n",2,&number, NULL); то идут обе. Инфв В inete встречается и на русском с подробным описанием |
||||
|
|||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
во-первых: что значит "не идет" и что значит "Error"
во-вторых: а память под buf кто выделять будет? -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
hunter ты прав
память выделил (или распределил) Это сообщение отредактировал(а) ferum - 18.4.2006, 18:06 |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
Как узнать размер файла ?
(может есть какая функция) Это сообщение отредактировал(а) ferum - 18.4.2006, 21:40 |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
есть.
называется она ( как ни странно ) GetFileSize -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
hunter: спасибо
я уже узнал ![]() у меня вот с этой function возник вопрос Как выделить память для size DWORD size=GetFileSize (hFile, NULL); |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
примерно так:
char* buffer = new char[size]; -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
Не получается
Кусочек проги
Это сообщение отредактировал(а) ferum - 19.4.2006, 15:23 |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
что не получается?
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
походу не может выделить память под size
на 3-ей строке происходит стопор. |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
что значит "не может"?
что значит "происходит стопор"? ( причем на третьей строке ты размер файла определяеш ) учись правильно задавать вопросы -- чтобы информацию из тебя побитно вытаскивать не приходилось... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
Вот такая вот непоняточка
Прога большая память уже загружена на другие переменные и на size памяти не хватило (и надо её распределить для size). Вот я думаю как распределить память с помощью (calloc,malloc) В size память не выделяется, поэтому в size не записывается размер файла Соответственно в переменную buffer ничего не записывается. |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
шутки шутим? 4-х байт на стеке не хватило? еще и безо всяких сообщений об этом?..
явно с хендлом файла накосячил... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
С хЭндлом не мог.
Он у меня используется только один раз при создании файла. |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
дык невыделение памяти под DWORD тоже произойти не могло...
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
объявил DWORD size, как глобальную переменную
опять с памятью проблемка. (да уж) |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
еще раз говорю -- нет там никакой проблемы с памятью
в чем она, кстати, выражается? -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
С памятью проблема исчезла
Возникла новая тупо с выводом результата
Выводит результат => 0 (в MessageBox) А должно в цикле от 0 до 10 типо 1.32432 5.4552 ... 5.4552 1.32432 5.4552 ... 5.4552 .... 1.32432 5.4552 ... 5.4552 заносит в файл всё как надо (я заносил через gcvt), но не считывает. Мож и обратно надо конвертить хотя с малыми прогами всё записывалось и считывалось без обратной конвертации . Это сообщение отредактировал(а) ferum - 20.4.2006, 14:51 |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
не понял ни что выводит ни что должно быть.
кстати, а не проще ли сразу buff выводить? зачем пляски с wsprintf? -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
Да точно нафмга эти пляски
![]() Но всё равно результат 0 Мож обратно конвертить, на всякий случай (через atof чтоли). Я могу всю прогу написать? а? Только первый символ файла выводит ( ![]() Это сообщение отредактировал(а) ferum - 20.4.2006, 17:00 |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
Вобщем разобрался
Функтион gcvt не записывает в файл десятичную точку, у таких чисел как 1, 2 типа int она вместо точки ставит пробел 1 00 . И при считывании считывается всё до недопустимого знака то бишь пробела. Вот и недостатки конвертирования налицо_:( |
|||
|
||||
ferum |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.4.2006 Репутация: нет Всего: нет |
Всё разобрался
ТЕМА ЗАКРЫТА |
|||
|
||||
Nemesis |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 20.2.2005 Где: Москва Репутация: нет Всего: 5 |
блин, как стереть сообщение?
Это сообщение отредактировал(а) Nemesis - 24.4.2006, 19:35 --------------------
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |