Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / readfile() криво работает / 17 сообщений из 17, страница 1 из 1
19.12.2012, 17:09
    #38085492
sce
sce
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
readfile() криво работает
Помогите разобраться с функцией, читает из файла закорючки, в чем проблема? Файл имеет кодировку ANSI

int main()
{

DWORD R;
char Line[255];

ReadFile("D:\\test.txt", Line, 255, &R, NULL);

printf(Line);

return 0;


}
...
Рейтинг: 0 / 0
19.12.2012, 17:25
    #38085516
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
readfile() криво работает
sceчитает из файла закорючки
Нет, читает оно нормально. А вот у тебя консоль работает в кодовой странице OEM вместо ANSI.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19.12.2012, 17:26
    #38085520
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
readfile() криво работает
Как вы определили, что читает закорючки?
...
Рейтинг: 0 / 0
19.12.2012, 17:29
    #38085528
sce
sce
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
readfile() криво работает
Прилагаю скрин, ниже

создал файл test.txt, в нем записано FFF.

Модератор: Вложение удалено.
Следи за размером картинок. Не у всех гигантские дисплеи.
...
Рейтинг: 0 / 0
19.12.2012, 17:30
    #38085529
sce
sce
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
readfile() криво работает
Dimitry Sibiryakovsceчитает из файла закорючки
Нет, читает оно нормально. А вот у тебя консоль работает в кодовой странице OEM вместо ANSI.

А как сделать чтобы работала в ANSI?
...
Рейтинг: 0 / 0
19.12.2012, 17:33
    #38085537
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
readfile() криво работает
sceА как сделать чтобы работала в ANSI?
SetConsoleOutputCP() + шрифт Lucida Console.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19.12.2012, 17:47
    #38085566
sce
sce
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
readfile() криво работает
Dimitry SibiryakovsceА как сделать чтобы работала в ANSI?
SetConsoleOutputCP() + шрифт Lucida Console.



поменял консоль, все равно, выводится теперь такое:
хотя должен FFF
...
Рейтинг: 0 / 0
19.12.2012, 18:18
    #38085635
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
readfile() криво работает
sceпоменял консоль, все равно, выводится теперь такое:
отя должен FFF
Файл C:\test.txt прикрепи на посмотреть. А то мало ли что там у тебя...

И, кстати, не вижу чтобы ты ставил в Line терминатор. Без него в конце будет выводиться
мусор по определению.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19.12.2012, 19:12
    #38085719
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
readfile() криво работает
sce ReadFile("D:\\test.txt", Line, 255, &R, NULL);
А что это за функция такая? Что она делает и как она это делает?
...
Рейтинг: 0 / 0
19.12.2012, 19:46
    #38085782
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
readfile() криво работает
sceсоздал файл test.txt, в нем записано FFF.
Да, но вы смотрите на результат ВЫВОДА. Даже если причина проблемы в чтении файла, вы все-равно смотрите на результат функции вывода.

Необходимо выполнять программу в пошаговом режиме (это называется отладка) и смотреть, что кладется в соответсвующие переменные.


P.S.: Ну а функцию ReadFile вы действительно используете как-то ПО-СВОЕМУ, а не как в микрософте задумывали (если конечно это функция WinAPI, а не что-то еще).

Вот ее описание:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365467(v=vs.85).aspx
...
Рейтинг: 0 / 0
19.12.2012, 20:04
    #38085796
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
readfile() криво работает
sce, консоль, текстовый редактор notepad, wordpad, и прочие просмотрщики - это всего
ишь призмы через которые мы видим бинарные данные. 99% что блокнот должен нормально
показать что и тут есть варианты. Что за файл? Откуда? Вобщем прикрепляй к форуму файл
будем смотреть.

Эта консоль доведёт меня до инфаркта. Налейте коньяку штоли...
...
Рейтинг: 0 / 0
19.12.2012, 22:09
    #38085896
sce
sce
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
readfile() криво работает
Вот выкладываю:

#include <iostream>
#include <math.h>
#include <windows.h>
using namespace std;

int main()
{

DWORD R;
char Line[255];

ReadFile("C:\\test.txt", Line, 255, &R, NULL);

printf(Line);

system("pause");

return 0;

}


Файл test.txt в аттаче
...
Рейтинг: 0 / 0
19.12.2012, 22:12
    #38085902
sce
sce
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
readfile() криво работает
Edd.DragonДа, но вы смотрите на результат ВЫВОДА. Даже если причина проблемы в чтении файла, вы все-равно смотрите на результат функции вывода.

Необходимо выполнять программу в пошаговом режиме (это называется отладка) и смотреть, что кладется в соответсвующие переменные.


P.S.: Ну а функцию ReadFile вы действительно используете как-то ПО-СВОЕМУ, а не как в микрософте задумывали (если конечно это функция WinAPI, а не что-то еще).

Вот ее описание:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365467(v=vs.85).aspx

Нет результат вывода есть, но проблема я так понимаю только в кодировке. Я для понимания данной функции отдельной программой ее сделал.
Я по мсдн и сделал, вроде все верно и написано или я что то не вижу? тыкните носом плиз:)
...
Рейтинг: 0 / 0
19.12.2012, 22:15
    #38085906
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
readfile() криво работает
sceпроблема я так понимаю только в кодировке
Нет, проблема в чтении. У ReadFile первый параметр - хэндл файла, а не имя. А результат
этой функции ты не проверяешь. Поэтому на экран выводится мусор в неинициализированном буфере.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
19.12.2012, 22:20
    #38085909
sce
sce
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
readfile() криво работает
Dimitry Sibiryakov,

а как получить хэндл файла? зная его путь

Createfile() возвращает handle
...
Рейтинг: 0 / 0
19.12.2012, 22:59
    #38085937
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
readfile() криво работает
sceCreatefile() возвращает handle
Вот так и получить. В MSDN же есть примеры, почему ты их игнорируешь?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.12.2012, 03:48
    #38094333
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
readfile() криво работает
В продолжение темы локалей и консолей

http://www.rsdn.ru/forum/cpp/1854733.1
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / readfile() криво работает / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]