Редактирование файла помогите пожалуйста

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Редактирование файла помогите пожалуйста

Сообщение zaf » 08.04.2006 (Сб) 23:11

Все больше помощи просить не буду

Вот лежит на столе книга "Использование VB6"
В 900ст.
Работать с файлами почти научился!

Но решить мою задачу неполучается...:(

Вот я делаю чат!
Мой ЛОГИН - zaf
Есть файл C:\login.txt
Вот его содержание
zaf2
zaf1
zaf1x
zaf
mama
dasix
nasix
saxi
panama
mizer


Как сделать чтобы при нажатии на кнопку Выход строка с моим логином удалилась?
Последний раз редактировалось zaf 09.04.2006 (Вс) 17:09, всего редактировалось 1 раз.

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 08.04.2006 (Сб) 23:26

Основываясь на своих знаниях, составь алгоритм, который выполнит задачу, потом спрашивай как это перевести на VB.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Сообщение zaf » 08.04.2006 (Сб) 23:49

FAKK2 писал(а):Основываясь на своих знаниях, составь алгоритм, который выполнит задачу, потом спрашивай как это перевести на VB.



Вот как я сделал

Private Sub Form_Unload(Cancel As Integer)

Open "c:\login.txt" For Input As #5
RichTextBox2.Text = Input$(LOF(5), #5)

Close #5

Do
With RichTextBox2
i = .Find(uNik, i + 1)
If i > 0 Then
.SelText = ""
End If
End With
Loop While i > 0

Open "c:\login.txt" For Append Shared As #4
Print #4, RichTextBox2.Text
Close #4

MsgBox "Çàõîäè åùå... !", 64, "ÂÛÕÎÄ ÈÇ ×ÀÒÀ"
End

End Sub


Но удаляет только ник и пустая строчка остается:(

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 09.04.2006 (Вс) 0:08

Что такое пустая строчка? Это константа vbCrLf (ентер т.е.). Его и удаляй вместе с ником.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Сообщение zaf » 09.04.2006 (Вс) 0:18

FAKK2 писал(а):Что такое пустая строчка? Это константа vbCrLf (ентер т.е.). Его и удаляй вместе с ником.


Можеш пример привести Pliiz

Мой код добавляет пустую строку и добавляет еще один такойже ник

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 09.04.2006 (Вс) 2:07

zaf
Ты знаешь что такое дебаг? Если нет я обьясню.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Сообщение neic » 09.04.2006 (Вс) 10:41

А собствено зачем ты используешь RichTextBox? А ListBox что разве не подходит для этого дела? Если согласишься работать ListBox, тогда я тебе помогу.

П.с. насчёт твоего кода, правильно что Васик оставляет пустую строчку, ты же и пешешь ему:
Код: Выделить всё
.SelText = ""


Как написал FAKK2, остаёться только удалить vbcrlf.

Денис Победря
Мегобойанист
Мегобойанист
 
Сообщения: 1037
Зарегистрирован: 03.01.2005 (Пн) 21:29
Откуда: Из Москвы

Сообщение Денис Победря » 09.04.2006 (Вс) 11:01

искать не uNik, а uNik&vbCrLf
[Место cдаётся]

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 09.04.2006 (Вс) 11:59

Код: Выделить всё
'The helmsman used to stand by with tears in his eyes.
'He knew it was all wrong; but alas! Rule #42 of the Code:
' "No one shall speak to the man at the Helm" had been
'completed by Bellman himself with the words:
' "And the man at the Helm shall speak to no one!"

Const FINDSTR = "zaf"

Dim ff As Byte, sData As String
ff = FreeFile

Open "C:\login.txt" For Input As #ff
    sData = Input(LOF(ff), ff)
Close #ff

Dim arrStrs() As String
arrStrs = Split(sData, vbNewLine)

Dim i As Long, sOut As String
For i = 0 To UBound(arrStrs)
    If Trim$(arrStrs(i)) <> FINDSTR Then
        sOut = sOut & arrStrs(i) & vbNewLine
    End If
Next

sOut = Mid$(sOut, 1, Len(sOut) - Len(vbNewLine))

ff = FreeFile
Open "C:\login.txt" For Output As #ff
    Print #ff, sOut;
Close #ff
Моду создают модоки, а распространяют модозвоны.

zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Сообщение zaf » 09.04.2006 (Вс) 14:01

hCORe писал(а):
Код: Выделить всё
'The helmsman used to stand by with tears in his eyes.
'He knew it was all wrong; but alas! Rule #42 of the Code:
' "No one shall speak to the man at the Helm" had been
'completed by Bellman himself with the words:

Вот я делаю так!
Private Sub Form_Load()

Const FINDSTR = Form1.Text1.Text

Dim ff As Byte, sData As String
ff = FreeFile

Open "C:\login.txt" For Input As #ff
sData = Input(LOF(ff), ff)
Close #ff

Dim arrStrs() As String
arrStrs = Split(sData, vbNewLine)

Dim i As Long, sOut As String
For i = 0 To UBound(arrStrs)
If Trim$(arrStrs(i)) <> FINDSTR Then
sOut = sOut & arrStrs(i) & vbNewLine
End If
Next

sOut = Mid$(sOut, 1, Len(sOut) - Len(vbNewLine))

ff = FreeFile
Open "C:\login.txt" For Output As #ff
Print #ff, sOut;
Close #ff

End Sub

Это все находится на форме №3 Эту форму я открываю путем нажатия на кнопку Form3.Show Т.е. чтобы введеный ник в тектовом поле на первой форме ну исчез!
При запуске формы №3 вылазит "CONSTANT EXPRESSION REQUIRED"

zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Сообщение zaf » 09.04.2006 (Вс) 14:04

neic писал(а):А собствено зачем ты используешь RichTextBox? А ListBox что разве не подходит для этого дела? Если согласишься работать ListBox, тогда я тебе помогу.

П.с. насчёт твоего кода, правильно что Васик оставляет пустую строчку, ты же и пешешь ему:
Код: Выделить всё
.SelText = ""


Как написал FAKK2, остаёться только удалить vbcrlf.


Согласен :) Помоги пожалуйста!

Вот есть уже лист бокс со списком пользователей который беру с файла "c:\login.txt" И всовываю их из файла в лист бокс!

Короче надо чтобы при выходе искался его ник в списке и удалялся, а потом все сохранялось в файле

zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Сообщение zaf » 09.04.2006 (Вс) 17:09

Help Plzzz :cry:

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 09.04.2006 (Вс) 17:12

OMG! Найди пять отличий:
Код: Выделить всё
Private Sub Form_Load()
    Dim FINDSTR As String

    FINDSTR = Form1.Text1.Text

    Dim ff As Byte, sData As String
    ff = FreeFile

    Open "C:\login.txt" For Input As #ff
        sData = Input(LOF(ff), ff)
    Close #ff

    Dim arrStrs() As String
    arrStrs = Split(sData, vbNewLine)

    Dim i As Long, sOut As String
    For i = 0 To UBound(arrStrs)
        If Trim$(arrStrs(i)) <> FINDSTR Then
            sOut = sOut & arrStrs(i) & vbNewLine
        End If
    Next

    sOut = Mid$(sOut, 1, Len(sOut) - Len(vbNewLine))

    ff = FreeFile
    Open "C:\login.txt" For Output As #ff
        Print #ff, sOut;
    Close #ff
End Sub


Константу на переменную ты заменить не догадался?!
Моду создают модоки, а распространяют модозвоны.

zaf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 27.03.2006 (Пн) 23:04

Сообщение zaf » 09.04.2006 (Вс) 17:22

hCORe писал(а):OMG! Найди пять отличий:
Код: Выделить всё
Private Sub Form_Load()
    Dim FINDSTR As String

    FINDSTR = Form1.Text1.Text

    Dim ff As Byte, sData As String
    ff = FreeFile

    Open "C:\login.txt" For Input As #ff
        sData = Input(LOF(ff), ff)
    Close #ff

    Dim arrStrs() As String
    arrStrs = Split(sData, vbNewLine)

    Dim i As Long, sOut As String
    For i = 0 To UBound(arrStrs)
        If Trim$(arrStrs(i)) <> FINDSTR Then
            sOut = sOut & arrStrs(i) & vbNewLine
        End If
    Next

    sOut = Mid$(sOut, 1, Len(sOut) - Len(vbNewLine))

    ff = FreeFile
    Open "C:\login.txt" For Output As #ff
        Print #ff, sOut;
    Close #ff
End Sub


Константу на переменную ты заменить не догадался?!



Все клево спасибо:)

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 09.04.2006 (Вс) 18:00

zaf
Но книжку по основам языка ты все-таки, того, прочитай, ладно?

А то тут есть ряд продвинутых личностей, им помогать уже надоело и они сразу книжки читать посылают (вообще-то, правильно посылают). А мне еще не надоело, и я сначала помогаю, а потом посылаю (да, скромность не порок :twisted:)
Моду создают модоки, а распространяют модозвоны.

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 09.04.2006 (Вс) 19:38

hCORe
Ну вот... код ты ему дал, а подумать не дал. Теперь он так и будет ходить не думая :)
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Сообщение neic » 09.04.2006 (Вс) 21:01

FAKK2 писал(а):hCORe
Ну вот... код ты ему дал, а подумать не дал. Теперь он так и будет ходить не думая :)

Ага пущай помучаеться!!!


Учаться на примерах =)

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 09.04.2006 (Вс) 21:03

Тут не пример, тут ответ.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 189

    TopList