Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Rivin poistaminen ja muokkaaminen (VB6)

InfreQ [13.02.2008 22:16:23]

#

Elikkä jatkan kysymyksiäni uuteen aiheeseen. Tarkoitus olisi poistaa tiedostosta valitsemani rivi eli kun laitan textboxiin rivinumeron ja painan 'Poista' -painiketta ohjelma poistaa tiedostosta syöttämäni rivin.
Ja jos haluan muokata tiedostossa olevaa riviä miten saan tämän toimimaan?
Olen edellisten ohjeitten mukaan tehnyt muutamat textboxit joihin haettu tieto tulostuu ja miten saan nämä tiedot muutettua vain vaihtamalla boxeissa olevia tietoja? Ja tällöin se tietysti tallentaa uudet tiedot edellisen rivin pälle.
Rivit tulostuvat tiedostooni tyyliin seuraava:

2 | 10.02.2008 | Terve
1 | 12.02.2008 | Moi

Rivinumero | Päivämäärä | Kommentti

tesmu [14.02.2008 12:13:51]

#

Kannattaa tutustua funktioon Split

Sillä saat toteutettua kyseisen asian...

neau33 [14.02.2008 12:58:29]

#

Moikka InfreQ!

kokeile jotain alla olevan tyylistä viritelmää...

'käyttö:
'klikkaa tekstiruudussa jotain riviä hiirellä ja
'klikkaa komentopainiketta...
'tai siirry  navigointinäppäimillä (<  >) halua-
'mallesi riville, pidä Ctrl-näppäin painettuna,
'paina jompaakumpaa em. navigointinäppäimistä,
'vapauta Ctrl-näppäin, siirrä focus Tab-näppäimellä
'komentopainikkeelle ja paina Enter-näppäintä.

'säädöt
'Text1: MultiLine True, ScrollBars 2 - Vertical

Private Rivi As String

Private Sub Form_Load()

  On Error Resume Next
  Open App.Path & "\tiedosto.ext" For Input As #1
  If Err > 0 Then
    Err.Clear: On Error GoTo 0: Exit Sub
  End If
  Text1.Text = Input$(LOF(1) - 2, 1): Close #1
  Text1.Locked = True

End Sub

Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)

  Select Case KeyCode
    Case 37, 39: ' <- tai ->
      If Shift = 2 Then  'Ctrl
        TsekkaaTeksti
      End If
  End Select

End Sub

Private Sub Text1_MouseUp(Button As Integer, _
Shift As Integer, X As Single, Y As Single)

  If Text1.SelLength = 0 Then
    If Text1.Text <> "" Then TsekkaaTeksti
  Else
    Text1.SelLength = 0: Text1.SelText = ""
  End If

End Sub

Private Sub Command1_Click()

  If Rivi <> "" Then
    Text1.Text = Replace(Text1.Text, Rivi, "")
  End If

  Select Case Len(Text1.Text)
    Case 2
      If Text1.Text = vbCrLf Then Text1.Text = ""
    Case Is > 2
      If Right(Text1.Text, 2) = vbCrLf Then
        Text1.Text = Left(Text1.Text, Len(Text1.Text) - 2)
      End If
  End Select
  Open App.Path & "\tiedosto.ext" For Output As #1
 Print #1, Text1: Close #1: Rivi = ""

End Sub

Public Sub TsekkaaTeksti()

  For i = Text1.SelStart To 1 Step -1
    Text1.SelStart = Text1.SelStart - 1
    If Mid(Text1.Text, i, 1) = Chr(13) Then Exit For
  Next i

  For i = Text1.SelStart + 2 To Len(Text1.Text)
    If Mid(Text1.Text, i, 1) = Chr(13) Then Exit For
    Text1.SelLength = Text1.SelLength + 1
  Next i

  Text1.SelLength = Text1.SelLength + 1
  Rivi = Text1.SelText
  If Not Mid(Text1.Text, Text1.SelStart + 1, 1) _
  = Chr(13) And InStr(Text1.Text, vbCrLf) > 0 Then
    Rivi = Rivi & vbCrLf
  End If

End Sub

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta