Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ф-ция для работы с файлом.. 
:(
    Опции темы
0x00
Дата 8.5.2006, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 3.4.2006

Репутация: нет
Всего: нет



Здраствуйте, не могли бы вы мне помочь..
Нет ли у вас ф-ции, которая читает первую строку из файла (ReadFile). и возвращяет указатель на переменную с этой строкой в точку вызова? 
PM MAIL   Вверх
nikitao
Дата 8.5.2006, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

Репутация: 1
Всего: 26



ЭЭЭ.У нас нет ,а это чем не нравется
Код

fille>>str;//str-string,file-ifstream
 


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
Helicopterr
Дата 8.5.2006, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 20.8.2005
Где: Stavropol

Репутация: 2
Всего: 3



Код

char* DataFile ( char* Filename, char* String ) //ф-ция
{
    char DIRNAME[200];
    GetCurrentDirectory( 200, DIRNAME );
    strcat( DIRNAME, "\\" );
    strcat( DIRNAME, Filename );

    FILE *in = fopen( DIRNAME, "r+");    

    fscanf( in, "%s", String );    //чтение строки

    fclose(in);
    return String;
}

void main()
{
char Buff[100];
printf ("%s", DataFile ( "my_file.txt", Buff)); //точка вызова
}
 


--------------------
people can fly
PM MAIL   Вверх
0x00
Дата 10.5.2006, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 3.4.2006

Репутация: нет
Всего: нет



Helicopterrб ,большое спасибо. 
PM MAIL   Вверх
0x00
Дата 10.5.2006, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 3.4.2006

Репутация: нет
Всего: нет



а на WinAPI/c++ есть пример? 
PM MAIL   Вверх
Helicopterr
Дата 10.5.2006, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 20.8.2005
Где: Stavropol

Репутация: 2
Всего: 3



я привожу ф-ции кот. вполне пригодны для использования в WinAPI, вот еще одна:
Код

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//Name:ReadTextFromFile
//Desk: Cчитаваниe, содержимого файла.
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
char* ReadTextFromFile (  char* FileName, char* TextBuff   ) //ф-ция
{     
    DWORD dw;
    char DIRNAME[200];
    GetCurrentDirectory( 200, DIRNAME );
    strcat( DIRNAME, "\\" );
    strcat( DIRNAME, Filename );

    HANDLE hFile = CreateFile( DIRNAME, GENERIC_READ, FILE_SHARE_READ, (LPSECURITY_ATTRIBUTES) NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL); 
    DWORD dSize = GetFileSize(hFile, (LPDWORD) NULL);

    ReadFile( hFile, TextBuff , dSize, &dw, NULL ) ;

    CloseHandle(hFile);    
    TextBuff [dw] = '\0';
    return TextBuff;
}

void main()
{
char Buff[100];
printf ("%s", ReadTextFromFile ( "my_file.txt", Buff)); //точка вызова
}
 


--------------------
people can fly
PM MAIL   Вверх
bsa
Дата 10.5.2006, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



0x00, очень рекомендую купить книжку по С/С++ (хотя бы из рекомендованных в начале данного форума), так как просить у кого-либо функцию, которая описана в любом учебнике по С, имхо, очень не прилично. Тем более, что даже самому писать ничего не надо - все уже давно написано.
Реализация на С:
Код

#include <stdio.h>
...
FILE *f;
char s[1024];
...
f = fopen( "path\\to\\file", "rt" ); //открываем текстовый файл для чтения
if ( f != NULL ) {    //если файл успешно открылся
     fgets( s, 1024, f);     //читаем первую строку (если она длиннее 1023 символов, то первые 1023 символа) в массив s
     fclose(f);       //закрываем файл
}
...

Реализация на C++:
Код

#include <string>
#include <iostream>
...
using namespace std;
...
istringstream file("path\\to\\file");  //открываем текстовый файл на чтение, файл будет закрыт при выходе из текущей функции
string s;   //объявляем переменную типа string
file>>s;    //считываем первую строку файла в переменную s
printf( "%s\n", s.c_str() );   //это пример, как можно получить указатель на строку (тип char*)
...
  

Это сообщение отредактировал(а) bsa - 10.5.2006, 22:26
PM   Вверх
0x00
Дата 10.5.2006, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 3.4.2006

Репутация: нет
Всего: нет



Helicopterr, огромное спасибо. Ты меня выручил.
С меня банка пива.... пришли мне в ПМ номер своего WMR кошелька ;) 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0490 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.