Вопрос по созданию и чтению файла

Artur1987

Active Member
31.03.2007
31
0
#1
Мне нужно чтобы после запуска программы создавался и сразу открывался текстовый файл. Вот в конструкторе CView я прописал:

CPushAraII_26aView::CPushAraII_26aView()
{
// TODO: add construction code here

file.Open((LPCSTR)"Bloknot.txt",CFile::modeCreate|CFile::modeRead,NULL);

}

Файл Bloknot.txt создаётся, но почему-то не открывается , хотя я написал , чтобы он открывался для чтения. Что не так,подскажите, плз :)
 

Artur1987

Active Member
31.03.2007
31
0
#3
ну чтобы он просто открылся как обычный текстовый файл. мне пока хотя бы это сделать..
 

Artur1987

Active Member
31.03.2007
31
0
#5
потому что не открылся блокнот с именем моего файла. А он разве не так должен открываться? То есть файл ведь должен открыться с помощью блокнота, т.к. он текстовый
 

grigsoft

Well-Known Member
15.11.2005
735
0
#6
гм. На самом деле ты пытаешься открыть файл чтобы работать с ним из программы. Попробуй поставить задачу по другому - запустить нотепад и передать ему твой файл (CreateProcess). Или запустить связанное с файлом приложение - ShellExecute.
 
04.09.2006
2 566
2
#7
<!--QuoteBegin-grigsoft+14:04:2007, 13:28 -->
<span class="vbquote">(grigsoft @ 14:04:2007, 13:28 )</span><!--QuoteEBegin-->Дай угадаю, ты хочешь чтобы он в ноутпаде открылся??
[snapback]62426" rel="nofollow" target="_blank[/snapback]​
[/quote]
+1
 
P

progstone

Гость
#8
Если открывать файл в проге для чтения записи файликов то это
CreateFile CloseHandle
а если для блокнота то по ShellExecute("notepad.exe C:\\1.txt"
 
V

Volkogriz

Гость
#9
Доброе время суток!!! :)
Я навичёк!
Может вопрос не втему не ругайтесь!!! :(
Памагите разобраться плиз с такой проблемкой!!!
Пытаюсь написать приложение типа Avtorun!!!
Вопрос как как запустить приложение из к примеру текст файла!!!
Например я в файле пропмсую:
[Button1]
1/2/Setup.exe
но и естественно при нажатии на Button1 запускался Setup.exe
За рание благадарю!!!
С уважением Volkogriz!!! :(
 

grigsoft

Well-Known Member
15.11.2005
735
0
#10
Для: Volkogriz
3 этапа:
1. Прочитать список команд из конфигурационного файла
2. Сделать полный путь из относительного
3. Запустить приложение.

Реализация какого из этапов тебе не понятна?
 
V

Volkogriz

Гость
#11
Доброе время суток!!! :)
Если чесно все три именно работа с файлом мне и непонятно! :(
Эсли можно дайте пожалусто примерчик именно с этой ситуацыей! :D
Я уже месяца полтора сней капашусь всё вехать пытаюсь но никак не получается!
Пропорции формы цвет ну ивсе что связанно сформой проделать магу но вот с запуском приложения проблемы!
Помогите пожалуйсто буду очень блогодарен!!!
За рание благадарю!
С уважением Volkogriz! :)
 
P

progstone

Гость
#12
1) нужно пропарсит файл.так как файл создаешь ты можно просто по поиску искать '['и до ']'.Так ты отделишь названия секций.Далее построчно т.е искать "\r\n" символ перехода на новую строку.
2)Определяешь положение своего exe файла,например с помошью GetModuleFileName,HMODULE можно взять через GetModuleHandle(NULL).Выбрасываешь оттуда название своего exe и дописываешь заначение из секции.
3)Если только запустить то мона WinExec, если командная мона по ShellExecute("notepad.exe C:\\1.txt",в msdn есть пример.
 
V

Volkogriz

Гость
#13
Доброе время суток!!! :(
Progstone Немогли бы вы скинуть "в msdn есть пример." Примерчик самый простой в исходниках!? :)
Volkgriz@ya.ru!
Зарание блогодарен!!!
С уважением Volkogriz!!! ;)
 
S

Seva

Гость
#14
всем привет и с наступающим! подскажите пожалуйста кто знает: как прочитать файл построчно- т. е. есть текстовый файл, в нём миллион строк, все строки разные- от 2 до 100 символов (цифры, знаки, буквы), так вот 1.как прочитать строку, например 100235? 2. как прочитать несколько строк, например, с 100000 по 20000? т. е. надо, чтобы определённые строки записывались в переменную CString... спасибо!
 

grigsoft

Well-Known Member
15.11.2005
735
0
#15
Для: Seva
Готовых функций для перехода в файле к строке N нет. Тебе придется открыть файл, вычитать из него N-1 строк самому. Либо через CStdioFile - проще и медленней, или через CFile\MMF - быстрее и сложнее в реализации.
 
D

Dimmuborgir

Гость
#16
Для чего столько мучений, не пойму. ofstream, ifstream вам в помощь. быстро, удобно!
 
S

Seva

Гость
#17
это если приложение консольное... тогда-да, сомнений нет
 
D

Dimmuborgir

Гость
#18
а если не консольное, то ofstream, ifstream непойдет чтоли?) функции seekg и tellg все позволяют.
 
S

Seva

Гость
#19
а если не консольное, то ofstream, ifstream непойдет чтоли?) функции seekg и tellg все позволяют.
интересный совет, только вот я не знаю как пользоваться этими функциями... и MSDN почему-то молчит! можно небольшой примерчик рабочего кода? желательно, применительно к данной проблеме-задаче, спасибо!
 
D

Dimmuborgir

Гость
#20
Код:
 const char *pszfname="Data.txt";
ifstream sfile;
sfile.open(pszfname);
if (sfile.is_open())
{
sfile.seekg(3);
string sdata,sdata1;
sfile>>sdata;
sfile.seekg(5);
sfile>>sdata1;
}
считает из файла начиная с 4 байта, затем с 6. все отсчеты от первого байта. В МСДН все это есть.