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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с файлами в С99 
:(
    Опции темы
sanda
Дата 28.4.2010, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Задача такова "В каждой строке текстового файла содержится имя файла, находящегося в текучем каталоге. переписать файл, удалив из него имена не существующих файлов, а для каждого существующего файла записать его размер в байтах. имя файла передается в командной строке"

мои действия открываю файл test.txt содержащий:
main.c
main.exe
tests.txt


беру первую строку проверяю есть ли файл с таким именем в каталоге,  заношу во второй файл но незнаю как дописать его размер в тойже строке, и не знаю как перейти на следующую строку, что бы проверить 2й файл на наличие в папке...

размер файла узнаю с помощью  
Код

tmpFile = fopen(nameFile,"rb");
        fseek(tmpFile,0,SEEK_END);
        sizeFile = ftell(tmpFile);
        fseek(tmpFile,0,SEEK_SET);


вот все что пока удалось написать:
Код

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include <io.h>

int main (int argc, char * argv[])
{
    FILE  *myFile, *newFile;
    char *mas;
    char nameFile[100];
    long sizeFile;
    // проверка на агрументы
    if (argc != 2)
        {
            printf ("Some arguments are skipped\n");
            exit (1);
        }
    //проверка на возможность открыть файл test.txt
if ((myFile = fopen (argv[1], "r+")) == NULL)
        {
            printf ("Can't open %s\n", argv[1]);
            exit (1);
        }
newFile = fopen("new.txt", "r+");
//fscanf (myFile, "%s", nameFile);
mas = fgets(nameFile,100,myFile);   
    
if (!mas)
        printf("\n End file or error \n");
    else 
        fputs(nameFile,newFile);
               
return 0;

}

PM MAIL   Вверх
semibug
Дата 28.4.2010, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Размер можешь писать так (если считать что переменная sizeFile типа int содержит размер файла)

Код

fprintf( newFile, "%s %d\n", nameFile, sizeFile );


Для перехода к следующей строке ничего особенного делать не надо, следующий вызов fgets вернет следующую строку.

PM   Вверх
sanda
Дата 28.4.2010, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



спасибо, только имя и размер файла записывается не в одну строку 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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