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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Файлофый ввод/вывод средсвоми С, Подтереть файл 
V
    Опции темы
JAnty
  Дата 16.3.2007, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Как мне стереть последний симфол в файле? :(
Я понимаю, что это не должно быть сложно, но не могу придумать как это реализовать.  smile 
А очень надо. Вот, к примеру файл:

-------Файл.txt---
123456
asddfdfff
h  h h h 
рр66рр45
456кеец[]{=Q

---------------------

Как видно из примера, после символа Q есть символ "\n" (Enter).
Файл должен заканчиваться после символа Q.

Балван! Согласен! Но мне это надо, помогите плиз... 


--------------------
Русский справочник по WinAPI

Возможно всё, что возможно вообразить! Это и значит быть гением как я!
PM MAIL   Вверх
ama_kid
Дата 16.3.2007, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


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

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



Чо-нить типа:
Код

fseek(stream,0L,SEEK_END);
fseek(stream,-1,SEEK_CUR);    // или fseek(stream,-1,ftell(stream));
SetEndOfFile(stream);



Это сообщение отредактировал(а) ama_kid - 16.3.2007, 17:50


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
JAnty
Дата 16.3.2007, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Знать бы что ты написал...


--------------------
Русский справочник по WinAPI

Возможно всё, что возможно вообразить! Это и значит быть гением как я!
PM MAIL   Вверх
ama_kid
Дата 16.3.2007, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


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

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



В смысле?:
Код

fseek(stream,0L,SEEK_END);    // Устанавливаем курсор на конец файла
fseek(stream,-1,SEEK_CUR);    // или fseek(stream,-1,ftell(stream));   // Устанавливаем курсор на позицию, на 1 меньшую текущей...
SetEndOfFile(stream);             // Обрезаем файл


Для всего этого надо подключить <stdio.h> и <WinBase.h>


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
apook
Дата 16.3.2007, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Курсор в конец файла
Курсор на один символ назад
стереть его на .... прочь 


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
JAnty
Дата 16.3.2007, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Понял, Я незнал про функцию "SetEndOfFile(stream);"
Спасибо.  smile 


--------------------
Русский справочник по WinAPI

Возможно всё, что возможно вообразить! Это и значит быть гением как я!
PM MAIL   Вверх
JAnty
Дата 20.3.2007, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



   Полная фигня получается  smile 

А подругому никак?  smile 


--------------------
Русский справочник по WinAPI

Возможно всё, что возможно вообразить! Это и значит быть гением как я!
PM MAIL   Вверх
apook
Дата 20.3.2007, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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

Все зависит от того каким способом открываешь файл
вот простой пример
Код

#include<string.h>
#include<fcntl.h>
#include<io.h>
                   
int main(void)
{
int handle;

/* создать текстовый файл из 10 байт */
handle = open( "DUMMY.TXT", O_RDWR | O_CREAT );

/* обрезать файл */
chsize( handle, (filelength(handle)-1) );


/* закрыть файл */
close( handle );
return 0;
}



Это сообщение отредактировал(а) apook - 20.3.2007, 14:58


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
JAnty
Дата 20.3.2007, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот это другое дело.  smile 


--------------------
Русский справочник по WinAPI

Возможно всё, что возможно вообразить! Это и значит быть гением как я!
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.0728 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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