![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
Child of Bodom |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: ![]() ![]() ![]() |
Люди помогите плиз срочно. скоро сессия а немогу прогу сделать чтоб работала.
вообщем суть такова: надо считать файл, и если в нем попадается заданный символ, удалить его, но потом надо будет вернуть обратно. например, удалим пробелы из строки файла: __ABC_____FDC__ чтобы допустим получилось 2,3ABC5,3FDC2,0 Получается что цифра перед запятой - это количество пробелов или последовательно идущих символа, а после запятой - через сколько символов опять будет пробел. Причем сделать мне это надо именно так (препод так сказал) Язык программирования С++ Builder но тут вроде нету неизвестных функций вот что получилось void __fastcall TForm1::delClick(TObject *Sender) Сообщение отредактировано: Lapp - 18.12.2007 14:07 |
![]() ![]() |
Lapp |
![]()
Сообщение
#2
|
|||
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
|||
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Child of Bodom, так что-ли:
#include <fstream.h> ? |
Child of Bodom |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: ![]() ![]() ![]() |
Child of Bodom, так что-ли: #include <fstream.h> ? немного не понимаю в тех местах. Да и вроде все то, вроде так понятно. я так почти и делал(я эту лабу переделываю 10 раз наверно). Короче у меня часто возникает проблемы с этими char , *char, char [] вот и получается что допустим в новый файл с цифрами записывалось нормально(как то получилось один раз), но когда обратно восстанавливать по этим цифрам заданный символ наступают проблемы с этими чарами . Допустим я создал множество из цифр и типа считывается посимвольно и типа если входит в множество тогда их там преобразовываю считываю, но получается что никогда не совпадает, то есть никогда во множество то не входят цифры. Вот с этим в основном проблемы. А это вообще C++ Builder 6 или 2007 ? |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Цитата А это вообще C++ Builder 6 или 2007 ? А тут не используется ничего такого, что изменилось бы, начиная с 6 версии. Я бы сказал, никаких специальных "примочек" Билдера тут вообще не используется. За исключением AnsiString и IntToStr все остальное - стандартные средства С++... Теперь о том, что тебе не было понятно. Смотри:
А вообще-то тебе надо разобраться с указателями (это вообще рабочий инструмент в С++, без понимания, как они работают, тебе будет очень сложно что-то написать) и со строками. Сообщение отредактировано: volvo - 18.12.2007 21:35 |
Child of Bodom |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: ![]() ![]() ![]() |
А вообще-то тебе надо разобраться с указателями (это вообще рабочий инструмент в С++, без понимания, как они работают, тебе будет очень сложно что-то написать) и со строками. Круто. Вроде все теперь понял. Спасибо. Да на лекциях про указателя я наверно спал просто или в дурака играл. не помню. Это седня попробую. А вот теперь при нажатии на вторую кнопку. надо все это вернуть из второго файла(т.е заданный символ в те места где он стоял) вот и там вот делать так чтоб допустим если цифра встречается сравнивать ее с множеством чисел если совпадает, то и т.д. .... Так наверно сделать?? |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Восстановление исходной строки я бы делал так:
void __fastcall TForm1::Button2Click(TObject *Sender)О том, что именно здесь делает sscanf - читай здесь, я уже объяснял как подобный фрагмент работает: Задача по строкам |
Child of Bodom |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: ![]() ![]() ![]() |
А вот еще у меня вопросик. Можно ли по этой технологии считывать не только текстовый файл но и .dat .dll ну или просто не только текстовый файл???
|
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
В принципе, если ты знаешь формат файла, который читаешь - то достаточно просто открыть файл как бинарный:
ifstream infile("myfile.dat", ios::in|ios::binary);и работать с ним. |
Child of Bodom |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: ![]() ![]() ![]() |
void __fastcall TForm1::delClick(TObject *Sender) А можешь сказать как там будет и ваще правильно ли будет так как я переделал, а то препод не поверит мне что я такой умный типа. Честно говоря мне си ваще не прет, вот паскаль это круто ![]() Сообщение отредактировано: Child of Bodom - 19.12.2007 19:58 |
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
Вот так там будет:
void __fastcall TForm1::Button6Click(TObject *Sender) P.S. Не имей привычки часто пользоваться глобальными переменными (или слишком много ненужного запихивать в класс) - это может тебе навредить... |
Child of Bodom |
![]()
Сообщение
#12
|
Новичок ![]() Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: ![]() ![]() ![]() |
Так вывод я попробую по аналогии сделать. Спасибо большое за помощь, за советы.Попробую следовать им. Ща попробую все это скомпилить. Прикольно будет если получитсья
|
Child of Bodom |
![]()
Сообщение
#13
|
Новичок ![]() Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: ![]() ![]() ![]() |
Слушай че то не то получается. Например, пишу удалить пробел а он еще часть текста удаляет:
Исходный файл: Превед я тупой робот пните меня чтоб я начал работать Полученный файл: 1,1я2,5робот2,4меня2,1я2,8работать |
volvo |
![]()
Сообщение
#14
|
Гость ![]() |
for(char *p = buffer; *p; p++) {У меня на твоем примере отработало... |
Child of Bodom |
![]()
Сообщение
#15
|
Новичок ![]() Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: ![]() ![]() ![]() |
оооо круто работает!!!! Спасибо
![]() ура ща буду смотреть кнопку возвращения обратно текста этого ![]() Сообщение отредактировано: Child of Bodom - 20.12.2007 18:58 |
Child of Bodom |
![]()
Сообщение
#16
|
Новичок ![]() Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: ![]() ![]() ![]() |
ой я скоро покончу с собой:(( препод начал проверять: открыл текстовый файл, одну строку нормально проработало. он говорит а че ты мне тока одну , давай я напишу текст и посмотрим как будет удаляться. ну вот он написал :
на поле танки грохотали_ // _ это пробел поставил чтоб видно было Вот а после кодирования вот что получилось: 7,2на1,4поле1,5танки1,9грохотали1,1 я понимаю что уже достал вас но мне ее надо последний срок в понедельник, а я ваще не чаю что уж теперь сделать. Помогите прошу!!! |
volvo |
![]()
Сообщение
#17
|
Гость ![]() |
А теперь расскажи, что ИМЕННО ты вводишь? У тебя в конце каждой строки что расположено? Перевод строки? Что же ты хотел? Я тебе для чего в самом начале говорил делать это через поток ifstream + метод getline? Потому что этот метод читает всю строку, не включая символ перевода строки. Ты переделал по-своему, теперь ищи в buffer-е после прочтения символ '\n' и выкидывай его из буфера (т.е., заменяй символом '\0'). Тогда получишь в результате обработки файла
na pole tanki grohotali_ 4,2na1,4pole1,5tanki1,9grohotali Добавлено через 19 мин. Хотя, если я правильно понимаю, что именно должно получиться, попробуй вот это: void __fastcall TForm1::Button6Click(TObject *Sender) |
Child of Bodom |
![]()
Сообщение
#18
|
Новичок ![]() Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо большое еще раз. Вроде пашет.ну при определенных параметрах. может прокатит
|
![]() ![]() |
![]() |
Текстовая версия | 24.07.2025 2:24 |