| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [VB6] Как изменить содержимое файла? |
| Автор: Fruks 11.9.2013, 12:32 |
| Добрый день уважаемые форумчане! Столкнулся с такой проблемой: В общем у меня такая задача: Открыть текстовый файл программой (пусть это будет C:\1.txt) в нем есть 3 строки: 1. AllowEfect = 1 2. FreeEfect = 2 3. Premium Effect = 3 И мне нужно с помощью программы изменить FreeEfect = 2 На FreeEfect = 5 В чем проблема? В том что вместо "=2" может стоять любое число и я не знаю какое именно! Мне нужно что бы в этом файле он удалял не только FreeEfect = а всю строчку вместе с неизвестным числом и заменял на FreeEfect = 5! Не подскажете как сделать? Я пока только добился успеха путем удаления всего файла и заменой на другой ! Но мне нужно сохранить исходную информацию пользователя данного файла! Спасибо за внимание. |
| Автор: TheTrick 11.9.2013, 13:21 |
| Считывай построчно (Line Input) и анализируй, также записывай в файл. |
| Автор: Fruks 11.9.2013, 13:32 |
| Можно подробнее ? Я не очень силен в вб:) |
| Автор: Akina 11.9.2013, 13:56 |
| http://msdn.microsoft.com/en-us/library/aa266177(v=vs.60).aspx http://msdn.microsoft.com/en-us/library/aa243392(v=vs.60).aspx http://msdn.microsoft.com/en-us/library/aa266187(v=vs.60).aspx http://msdn.microsoft.com/en-us/library/aa243283(v=vs.60).aspx |
| Автор: Fruks 11.9.2013, 14:16 |
| А вы не могли бы мне просто код написать с помощью которого это можно осуществить? Пожалуйста |
| Автор: Akina 11.9.2013, 14:24 |
| Для домашних заданий, курсовых, существует "Центр Помощи". Тема перенесена! |
| Автор: Fruks 11.9.2013, 14:45 |
| Я в принципе понял как перезаписать текст и все такое но как удалить строку и перезаписать ее вот этого яне понял :( |
| Автор: Akina 11.9.2013, 14:54 |
Никак. Ты просто читаешь из одного файла и пишешь в другой. Потом первый прибиваешь, второй переименовываешь. Например... |
| Автор: Fruks 14.9.2013, 13:42 |
| Нужно чтобы программа читала информацию файла, к примеру, (C:\1.txt), записывала всю информацию в переменную s Потом находила в этих записях определенную строку, и заменяла ее на другую! Напишите код пожалуйста ) Никак не могу сделать Спасибо за внимание |
| Автор: Sanaff 15.9.2013, 15:57 |
| Лучше считывать не в одну переменную, а в массив строк, потом из них создать файл легче. Вам тут уже подсказали, Line Input считывание, Print запись В чём конкретно непонятка? |
| Автор: Fruks 18.9.2013, 11:43 |
| в том что я не знаю как код написать |
| Автор: Hralain 1.11.2013, 19:02 |
| Извиняюсь что так поздно, только заметил. Если всё еще нужно, то с мотри. (если т конечно это увидишь) На форму добавь такую штучку, называется CommonDialog, 3 кнопки и 2 текстовых поля. Private Sub Command1_Click() ' Подпрограмма диалог открытия файла на чтение CommonDialog.FileName = "" CommonDialog.Filter = "Файлы (*.txt) |*.txt" CommonDialog.ShowOpen ' В этой строчке задается, что файл открывается на чтение Text1.Text = Dlog.FileName ' Сохраняем имя файла в текстовом окне End Sub Private Sub Command2_Click() ' Подпрограмма диалог открытия файла на запись CommonDialog.FileName = "" CommonDialog.Filter = "Файлы (*.txt) |*.txt" CommonDialog.ShowSave ' В этой строчке задается, что файл открывается на запись Text2.Text = Dlog.FileName ' Сохраняем имя файла в текстовом окне End Sub Private_Sub Command3_Click() Dim file1ToOpen As String, file2ToOpen As String, Mes As String ' задаем типы переменных file1ToOpen = Text1.Text ' Задаем имя входного файла Open file1ToOpen For Input As #1 ' открываем файл на чтение x = Input$(LOF(1), 1) ' считываем весь файл в переменную A = Split(x, vbCrLf): n = UBound(A) ' делим по строчкам Close ' закрываем файл For i = 1 to n ' задаем цикл, мы же не знаем сколько будет строчек If Left(A(i),10 ) = FreeEffect then A(i) = "FreeEffect = 5" ' Если первые 10 символов этой строки равны "FreeEffect" то эта строка заменяется на "FreeEffect = 5" Esle A(i) = A(i) ' в других случаях она не меняется Mes = Mes & A(i) & vbCrLf 'ну тут мы задаем переменную, которая будет строчкой (на конце это --> vbCrLf означает enter) Next i ' закончили цикл file2ToOpen = Text2.Text ' Задаем имя выходного файла Open file2ToOpen For Output As #1 ' Открываем его на запись Print #1, Mes ' Выводим весь текст в файл Close ' Закрываем файл |