Страница: 1 |
Вопрос: В текстовом файле пропадают запятые | Добавлено: 07.07.06 07:47 |
Автор вопроса: ![]() |
Ребята, тут прогу пишу
Она грубо говоря из исходного файла делает файл под шаблон. Во первых в каждой строчке обрезаю все пробелы слева. Во вторых в каждой строке есть место где подряд идут два пробела, эти два пробела нужно заменить на равно. Нужно, потому что по шаблону текстовика потом делаются хтмл'ки Все работает, только в том место где в исходнике встречается запятая, она пропадает и ставится Enter. Как поправить? Если есть мысли как код оптимизировать жду Option Explicit
'Dim strName As String Dim FileNum1 As Byte Dim FileNum2 As Byte Dim strText As String Dim strFileName1 As String Private Sub Command1_Click() Dim fileno As Integer Dim strFileName As String With CommonDialog1 .FileName = "" .Filter = "Все файлы (*.*)|*.*" .Flags = cdlOFNFileMustExist + cdlOFNPathMustExist .DialogTitle = "Выберите файл для открытия" .ShowOpen If .FileName = "" Then Exit Sub strFileName = .FileName End With FileNum1 = FreeFile Open strFileName For Input As FileNum1 While Not EOF(FileNum1) Input #FileNum1, strText FileNum2 = FreeFile Open strFileName1 For Append As FileNum2 strText = Replace(strText, " ", "=") Print #FileNum2, strText Close FileNum2 Wend Close FileNum1 Kill App.Path & "\temp.txt" End End Sub Private Sub Form_Load() Dim fileno As Integer With CommonDialog1 .FileName = "" .Filter = "Все файлы (*.*)|*.*" .Flags = cdlOFNFileMustExist + cdlOFNPathMustExist .DialogTitle = "Выберите файл для открытия" .ShowOpen If .FileName = "" Then Exit Sub strFileName1 = .FileName End With FileNum1 = FreeFile Open strFileName1 For Input As FileNum1 While Not EOF(FileNum1) Input #FileNum1, strText FileNum2 = FreeFile Open App.Path & "\temp.txt" For Append As FileNum2 Print #FileNum2, Trim(strText) Close FileNum2 Wend Close FileNum1 Kill strFileName1 End Sub |
Ответы | Всего ответов: 6 |
Номер ответа: 1 Автор ответа: ![]() ![]() Вопросов: 45 Ответов: 1212 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 07.07.06 07:48 |
Если нужно могу выложить исходный и конечный файлы для понимания |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #2 | Добавлено: 07.07.06 16:29 |
'Input #FileNum1, strText
Line Input #FileNum1, strText |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 262809473 Вопросов: 17 Ответов: 561 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 07.07.06 17:27 |
Я все монипуляции со строками вписал в Form_Load(). На выходе - уже форматированый файл temp.txt.
Дальше ты, наверное, сам разберешься. ![]() Тока я не понял: 1. Зачем открывать и закрывать файл в цикле? (это жутко тормозит прогу) 2. Зачем нужно сначала создавать temp.txt в Form_Load(), а потом выбирать его в Command1._Click()? (-судя по твоему описанию алгоритма) 3. Зачем удалять исходный файл (Kill strFileName1), ведь он, наверное, может ещё понадобиться? Private Sub Form_Load()
Dim fileno As Integer Dim s As String With CommonDialog1 .FileName = "" .Filter = "Âñå ôàéëû (*.*)|*.*" .Flags = cdlOFNFileMustExist + cdlOFNPathMustExist .DialogTitle = "Âûáåðèòå ôàéë äëÿ îòêðûòèÿ" .ShowOpen If .FileName = "" Then Exit Sub strFileName1 = .FileName End With FileNum1 = FreeFile Open strFileName1 For Input As FileNum1 While Not EOF(FileNum1) Line Input #FileNum1, strText s = s + Trim(Replace(strText, " ", "=" ![]() Wend FileNum2 = FreeFile Open App.Path & "\temp.txt" For Output As FileNum2 Print #FileNum2, s Close FileNum2 Close FileNum1 Kill strFileName1 End Sub Удачи! |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 262809473 Вопросов: 17 Ответов: 561 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 07.07.06 17:30 |
Чё то с русскими буквами фигня какая - то произошла ![]() |
Номер ответа: 5 Автор ответа: ![]() ![]() Вопросов: 45 Ответов: 1212 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 07.07.06 18:25 |
Серёга и HACKER спасибо
Завтра на работе проверю, все Я код делал на скорую руку, так что особо не думал, но весь вопрос был, как я думал что Replace чего не так меняет. А тут оказывается input касячит, лана сеньку завтра отпишусь ЗЫ исходный удалил и из темпа заново записал, можно в принципе output'ом затирать, так захотелось |
Номер ответа: 6 Автор ответа: ![]() ![]() Вопросов: 45 Ответов: 1212 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 08.07.06 08:52 |
Так всего гуд, исправил лишь:
Так вот правильнее
FileNum1 = FreeFile Open strFileName1 For Input As FileNum1 While Not EOF(FileNum1) Line Input #FileNum1, strText s = s + Replace(Trim(strText), " ", "=" ![]() Wend Close FileNum1 FileNum2 = FreeFile Open strFileName1 For Output As FileNum2 Print #FileNum2, s Close FileNum2 |
Страница: 1 |
|