0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 54
1

Обработка нескольких файлов в цикле

24.11.2013, 13:26. Показов 855. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня вопрос. Можно ли в программе привязать к переменной файл, выполнять с ним действия, а потом закрыть его и к этой же переменной привязать другой файл и т.д в цикле.

Заранее спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2013, 13:26
Ответы с готовыми решениями:

Посимвольная обработка строки в цикле
Приветствую. На днях делал здесь данную задачу : Даны символы s1,s2,... Известно, что символ...

Считывание содержимого из нескольких файлов
Доброго времени суток. Поискала в более ранних темах - не нашла. Суть проблемы вот в чем: у меня...

Условная компиляция (с участием нескольких файлов)
Добрый день. Мне нужно выполнить задание, а для этого нужно понять условную компиляцию, которая,...

Проект из нескольких файлов ( ошибка с <windows.h> )
Помогите разобраться с проектом из нескольких файлов. На паре написал вот такую програмку main.c...

9
3525 / 2683 / 334
Регистрация: 11.03.2009
Сообщений: 6,154
24.11.2013, 21:01 2
Можно, для повторного открытия удобно использовать функцию freopen()
1
0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 54
24.11.2013, 21:21  [ТС] 3
а как ее использовать?

мне нужно организовать передачу файлов в цикле. и после того, как я пересылаю 1 файл, мне выбивает ошибку, что невозможно открыть файл в окне сервера.
0
3525 / 2683 / 334
Регистрация: 11.03.2009
Сообщений: 6,154
24.11.2013, 21:22 4
Пример кода приведите открытия/закрытия файла.
1
0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 54
24.11.2013, 21:25  [ТС] 5
это клиент. я ввожу имя файла и пересылаю частями.
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
printf("\nFile name - ");
//scanf("%s",&name);
gets(name);
 
 
if ((file=fopen(name, "rb")) == NULL) 
    {
    printf("Cannot open file.\n");
    }
// заполнение структуры типа stat 
fstat (fileno (file), &buff);//diskriptor faila, pokazhchik na struckt
printf("\nSize of the file is: %ld\n", buff.st_size);
int filesize=buff.st_size;
 
send(clt_socket,(char*)&filesize,4,0);//send file size
send(clt_socket,name,100,0);//send file name
 
for(int i=1;i<=(filesize/1024);i++)//send cilu chast'
{
    fread(s, 1024, 1, file);  //fwrite(s,strlen(s)+1,sizeof(char),stream);
    send(clt_socket,s,1024,0);
}
int sz=filesize%1024;//send ostatok
fread(s,sz,1,file);
send(clt_socket,s,sz,0);
fclose (file);
}
это сервер,который принимает. один файл принимает,а потом ошибка
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
while(2>1)
{
recv(in_socket, (char*) &filesize2 , 4, 0 ); //send(srv_socket,(char*)&filesize,4,0);
recv(in_socket, name2 ,100, 0);
 
puts(name2);
printf("\n %d",filesize2);
 
if ((file2=fopen(name2, "wb")) == NULL) 
{
    printf("Cannot open file.\n");
    exit(1);
}
 
for(int i=1;i<=(filesize2/1024);i++)
{
    recv(in_socket, s , 1024, 0 );
    fwrite(s, 1024, 1 ,file2);
}
 
recv(in_socket, (char*) &sz2 , sz, 0 );
fwrite(s, sz2, 1 ,file2);
fclose (file2);
 
}
0
3525 / 2683 / 334
Регистрация: 11.03.2009
Сообщений: 6,154
24.11.2013, 21:44 6
Попробуйте перед повторным открытием вызывать функцию
C
1
void clearerr ( FILE * stream );
она сбрасывает указатели в файле и все ошибки потока.
Либо используйте freopen
C
1
FILE * freopen ( const char * filename, const char * mode, FILE * stream );
Используется аналогично fopen, по действию аналогична связке
C
1
2
clearerr();
fopen()
1
0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 54
24.11.2013, 21:55  [ТС] 7
блин. все равно не вышло. такая же ошибка.
я там написала,чтоб выводилось на экран имя и размер принимаемого файла, но вместо нормальных данных непонятно что.

может в чем-то другом может быть проблема? как думаешь?
0
3525 / 2683 / 334
Регистрация: 11.03.2009
Сообщений: 6,154
24.11.2013, 22:15 8
А что клиент отсылает в качестве имени во второй раз?
0
0 / 0 / 0
Регистрация: 22.04.2012
Сообщений: 54
24.11.2013, 22:51  [ТС] 9
имя и расширение файла,который нужно переслать. и так в цикле
0
3525 / 2683 / 334
Регистрация: 11.03.2009
Сообщений: 6,154
24.11.2013, 22:59 10
Нет, фактически что отсылает, если на сервер после первого раза непонятно что приходит, возможно непонятно что отсылается.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.11.2013, 22:59
Помогаю со студенческими работами здесь

Обработка нажатия нескольких кнопок, созданных в цикле
Есть форма с вкладками, в первой вкладке находится DataGridView, (номер, компонент, массовая доля,...

Передача нескольких файлов в цикле
Добрый день! на сайте можно выделить галочкой несколько файлов и они должны качаться. вопрос в...

Пройтись в цикле по потокам нескольких файлов
Всем привет. У меня такая проблемка, есть несколько файлов мне их нужно по порядку вскрыть, и уже...

Обработка нескольких файлов перед отгрузкой на сервер
Приветствую, господа Знатоки! =) Итак, есть инпут с атрибутом multiple=&quot;true&quot; который обеспечивает...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru