|
|
|
Помогите новичку (MFC)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Помогите пожалуйста написать прогу, которая в текстовом файле ищет конец строки, и ставит там точку. Потом ищет последнюю в строке запятую, стирает после нее все символы, и ставит вместо запятой точку. Вот пример: 6.00, 7.00, 8.00, 12.00, 17.40 Новини. // в этой строке ничего изменять не нужно 6.10 "Поки всi вдома" // в этой строке нужно поставить точку 7.10, 8.10 "Ранок з Iнтером" // в этой строке нужно поставить точку 9.55, 20.30 Т/с "Тетянин день", 68 с. // сдесь нужно после запятой убрать 68 с., и вместо запятой поставить точку 11.00, 17.55, 19.00 Т/с "Гонка за щастям", 47 с. // сдесь аналогично. Буду признателен за любую помощь! Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 14:29 |
|
||
|
Помогите новичку (MFC)
|
|||
|---|---|---|---|
|
#18+
1. Открыть исходный файл для чтения. 2. Открыть временный файл для записи. 3. Считывать построчно из исходного файла, делать необходимые изменения в строке и писать ее во временный файл. 4. Повторять шаг 3 пока не кончатся строки в исходном файле. 5. Закрыть оба файла. 6. Удалить исходный файл. 7. Переименовать временный в исходный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 14:48 |
|
||
|
Помогите новичку (MFC)
|
|||
|---|---|---|---|
|
#18+
Ну вот например до этого дошел. Дальше грухол угол. Т.е. Построчно считать с файла могу, а дальше что делать недогоню. CStdioFile file, temp; CString stroka; file.Open("d:\\as.txt", CFile::modeRead); temp.Open("d:\\temp.txt", CFile::modeCreate | CFile::modeReadWrite); while (file.ReadString(stroka)) { AfxMessageBox(stroka); temp.WriteString(stroka + "\n"); } Дальше пробовал использовать CString::Find, но у меня что-то не получилось. Вот на примере можете показать, как в этой строке найти симлов "," (последний в даной строке), убрать после него все символы, и поставить точку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 14:58 |
|
||
|
Помогите новичку (MFC)
|
|||
|---|---|---|---|
|
#18+
Tubrik wrote: > 1. Открыть исходный файл для чтения. > 2. Открыть временный файл для записи. > 3. Считывать построчно из исходного файла, делать необходимые изменения в > строке и писать ее во временный файл. 4. Повторять шаг 3 пока не кончатся > строки в исходном файле. 5. Закрыть оба файла. > 6. Удалить исходный файл. > 7. Переименовать временный в исходный. Можно просто загрузить исходный файл в память, модифицировать его, и сохранить назад. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 15:48 |
|
||
|
Помогите новичку (MFC)
|
|||
|---|---|---|---|
|
#18+
V@dimНу вот например до этого дошел. Дальше грухол угол. Т.е. Построчно считать с файла могу, а дальше что делать недогоню. CStdioFile file, temp; CString stroka; file.Open("d:\\as.txt", CFile::modeRead); temp.Open("d:\\temp.txt", CFile::modeCreate | CFile::modeReadWrite); while (file.ReadString(stroka)) { AfxMessageBox(stroka); temp.WriteString(stroka + "\n"); } Дальше пробовал использовать CString::Find, но у меня что-то не получилось. Вот на примере можете показать, как в этой строке найти симлов "," (последний в даной строке), убрать после него все символы, и поставить точку mfc не знаю( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 15:56 |
|
||
|
Помогите новичку (MFC)
|
|||
|---|---|---|---|
|
#18+
Tubrik wrote: > mfc не знаю( Он там и не нужен. Есть функции по типу fgets можно ими считать файл построчно, потом вывести назад, добавляя точку. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 17:15 |
|
||
|
Помогите новичку (MFC)
|
|||
|---|---|---|---|
|
#18+
с расширенными символами работать, естесно, не будет: Код: plaintext 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 18:20 |
|
||
|
Помогите новичку (MFC)
|
|||
|---|---|---|---|
|
#18+
CStdioFile file, temp; // файлы CString stroka; // считанная строка int str = 0; // позиция найденого символа file.Open("d:\\as.txt", CFile::modeRead); // Открытие файла для чтения temp.Open("d:\\temp.txt", CFile::modeCreate | CFile::modeReadWrite); // создание тмп файла while (file.ReadString(stroka)) { // считывание строки str = stroka.ReverseFind(','); // поиск символа с конца строки if (str > -1) { // Если символ не найден, функция возвращает -1 stroka.Delete(str, 3); // удаление найденного символа, и еще 3 символа после него stroka.Insert(str, ".\n"); // вставка нового символа temp.WriteString(stroka); // запись результата в файл } } Вот уже написал такое. По логике должно работать. А на практике хрень получаеться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2007, 18:25 |
|
||
|
Помогите новичку (MFC)
|
|||
|---|---|---|---|
|
#18+
У меня получилось. Может и совсем по-тупому, но уж как могу. (Я с С++ только пару дней знаком). Главное достиг то, чего хотел. Код: plaintext 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 03:54 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34753148&tid=2028294]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
171ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 445ms |

| 0 / 0 |
