![]() |
Нужно убрать текстовую часть из файла
Есть файл, в котором хранятся записи вида A:1:2:3.33:4:5
Причём каждая новая запись с новой строчки :) Где А-текст 1,2,4,5 - целые числа. Причём число 5 может достигать нескольких десятков тысяч. 3.33 - дробное число. Нужно написать прогу, чтоб она убирала текстовую часть (т.е. А). Объясняю как это нужно делать. Пройтись от числа 5 до двоеточия, которое стоит перед первым числом (1). Т.е. просто считать двоеточия, проходя каждую строчку и когда их станет 5(пять) нужно остановиться. Записать результат нужно в новый файл. Т.е. поясню ещё раз - input.txt Цитата:
Цитата:
ЗЫ. название темы получше придумать не смог :/ |
Цитата:
просто шас под рукой нет компилятора , а так вот набросал : Код:
чего-то ступил лучше fprintf использовать Код:
fprintf(fp , ":%s" , pch); |
дафайте и я набросаю 8)
Бил прямо тут так что извиняй за ошибки если что 8))) ...но идея должна быть понятна! Функция h_f вытаскивает подстроку по ее номеру где определена строка делимитеров(разделителей) Код:
#include "stdio.h" |
Ни то, ни другое не работает :) Скачал я с торента Borland 3.1
у delimiter'a ругается на 'eof' Цитата:
Цитата:
|
вместо true можно единицу поставить)
|
изменил на feof :D
|
Delimiter,
эээ чё-бы там исправить, чтобы работало для A:1:2:3:4.44:5:6 ? :) |
проверил все работает
(mfc проект) Код:
int h_f(char *sourcestr,char *deststr,int nelement,char *delimiterStr,int mode)Код:
A:1:2:3:4.44:5:6Код:
1:2:3:4.44:5:6 |
ууу... жесть какая...
а не проще было бы считать фаил посимвольно в массив и сравнить по кодам отдельно взятых символов |
а в чем упрощение
Алгоритм 1. считывается строка 2. считываем подстроку по счетчику 3. проверяем является ли полностью цифровой 4. если да пишем в файл 5. переходим к пункту 2 если подстрока последняя переходим к пункту 1 8) |
| Время: 16:25 |