Avatar billede eqvaliser Nybegynder
25. januar 2004 - 22:26 Der er 7 kommentarer og
1 løsning

kontrol af txt og ini filer, forudbestemt linie redigering.

har en masse .ini filer jeg gerne vil kontrollere på en meget
nemmer måde fremfor at skulle bruge notepad hver gang..

vil nu igang med at lave et program, hvori linierne kan redigeres
vha, point & click. evt nogle dropdown boxe..

Alt dette er ok..

Men mit problem ligger bla i at hente .ini filerne ind og redigere
en bestemt linie af gangen..

nårnu jeg har åbnet mit dockument data\minini.ini
med input som #1

hvordan går jeg fks til linie 12, og henter den linie og viser.
derefter ogat kun gemme i line 12..
Avatar billede eqvaliser Nybegynder
25. januar 2004 - 22:27 #1
jeg ved hvis jeg gemmer bare med at bruge

print #1, så sletter den alt andet data. og gemme kun det redigeret.
Avatar billede kabbak Professor
25. januar 2004 - 22:42 #2
Må vi se koden.

Du skal jo læse filen ind i et array , rette i en af dem og gemme hele arrayet igen.
Avatar billede eqvaliser Nybegynder
25. januar 2004 - 23:03 #3
har ikek skrevet noget ednu her..
er lioge begyndt.. så der er ik, lige så meget at se..

sidder ligenu og roder med forms, og design..

Og jeg håber at der er andre muligheder end arrays,,
dem er jeg elendig til,.
Avatar billede eqvaliser Nybegynder
25. januar 2004 - 23:15 #4
Ahh..
Avatar billede eqvaliser Nybegynder
25. januar 2004 - 23:20 #5
i startpåvb6 på side 136 er bla. at man kan skrive løbende til en fil,.

fks. 

Open "filnavn.txt" for output as #1

print #1, data  'linie 1
' fks funktioner,
print #1, data  'linie 2

close #1

og ved åbning af fil

fks..

open "filnavn.txt" for input as #1

do while EOF(1) = false
  linienr = linienr + 1
  line input #1 linie(linienr)
loop

close #1


...
hmm det skal jeg lige eksperimentere lidt med.
Avatar billede martin_moth Mester
26. januar 2004 - 07:19 #6
Ellers gør som kabbak siger - det er ikke så svært med arrays som du tror, og jeg giver gerne et eksempel hvis du ønsker
Avatar billede eqvaliser Nybegynder
27. januar 2004 - 23:51 #7
ja det vil jeg da gerne,,, men jeg tror jeg har den.....
har har du min form for en af scipts'ne

Private Sub cmd_get_Click()
  Dim Ranklinie(40) As String
  Dim linieskift As Integer
  linieskift = 0
  Open "D:\Arbejde\vb\CnC Zerohour\Data\ZADate102\INI\Rank.ini" For Input As #1
    Do While EOF(1) = False
        linieskift = linieskift + 1
        Line Input #1, Ranklinie(linieskift)
    Loop
  Close #1
 
  Select Case cmb_rank.ListIndex
      Case 0
        txtbx_rankname.Text = Mid(Ranklinie(6), 39, 10)
        txtbx_skillpointsneeded.Text = Mid(Ranklinie(7), 35, 4)
        txtbx_Sciencesgranted.Text = Mid(Ranklinie(8), 43, 6)
        txtbx_puchasepoints.Text = Mid(Ranklinie(9), 35, 2)
      Case 1
        txtbx_rankname.Text = Mid(Ranklinie(13), 39, 10)
        txtbx_skillpointsneeded.Text = Mid(Ranklinie(14), 35, 4)
        txtbx_Sciencesgranted.Text = Mid(Ranklinie(15), 43, 6)
        txtbx_puchasepoints.Text = Mid(Ranklinie(16), 35, 2)
      Case 2
        txtbx_rankname.Text = Mid(Ranklinie(20), 39, 10)
        txtbx_skillpointsneeded.Text = Mid(Ranklinie(21), 35, 4)
        txtbx_Sciencesgranted.Text = Mid(Ranklinie(22), 43, 6)
        txtbx_puchasepoints.Text = Mid(Ranklinie(23), 35, 2)
      Case 3
        txtbx_rankname.Text = Mid(Ranklinie(27), 39, 10)
        txtbx_skillpointsneeded.Text = Mid(Ranklinie(28), 35, 4)
        txtbx_Sciencesgranted.Text = Mid(Ranklinie(29), 43, 6)
        txtbx_puchasepoints.Text = Mid(Ranklinie(30), 35, 2)
      Case 4
        txtbx_rankname.Text = Right(Ranklinie(34), 10)
        txtbx_skillpointsneeded.Text = Mid(Ranklinie(35), 35, 4)
        txtbx_Sciencesgranted.Text = Mid(Ranklinie(36), 43, 6)
        txtbx_puchasepoints.Text = Mid(Ranklinie(37), 35, 2)
  End Select
End Sub


Private Sub cmd_save_Click()
'hent nuværende data
Dim linieDAT(40) As String
Dim linieTAL As Integer
linieTAL = 0

Open "D:\Arbejde\vb\Z\Data\ZADate102\INI\Rank.ini" For Input As #2
  Do While EOF(2) = False
    linieTAL = linieTAL + 1
    Line Input #2, linieDAT(linieTAL)
  Loop
Close #2



'gem ændringer
Open "D:\Arbejde\vb\Z\Data\ZADate102\INI\Rank.ini" For Output As #1
Print #1, ";//////////////////////////////////////////////////////////////////////////////"
Print #1, ";FILE: Rank.ini (SYSTEM) - //////////////////////////////////////////////"
Print #1, ";/////////////////////// - //////////////////////////////////////////////"
Print #1, " "
 
  Dim sktal As Integer
  Select Case cmb_rank.ListIndex

      Case 0
        Print #1, "Rank 1"
        Print #1, "  RankName                      = INI:" & txtbx_rankname.Text
        Print #1, "  SkillPointsNeeded            = " & txtbx_skillpointsneeded.Text
        Print #1, "  SciencesGranted              = SCIENCE_" & txtbx_Sciencesgranted.Text
        Print #1, "  SciencePurchasePointsGranted  = " & txtbx_puchasepoints.Text
        Print #1, "End"
        For sktal = 11 To 39 Step 1
          Print #1, linieDAT(sktal)
        Next
      Case 1
        For sktal = 5 To 11 Step 1
          Print #1, linieDAT(sktal)
        Next
        Print #1, "Rank 2"
        Print #1, "  RankName                      = INI:" & txtbx_rankname.Text
        Print #1, "  SkillPointsNeeded            = " & txtbx_skillpointsneeded.Text
        Print #1, "  SciencesGranted              = SCIENCE_" & txtbx_Sciencesgranted.Text
        Print #1, "  SciencePurchasePointsGranted  = " & txtbx_puchasepoints.Text
        Print #1, "End"
        For sktal = 18 To 39 Step 1
          Print #1, linieDAT(sktal)
        Next
      Case 2
        For sktal = 5 To 18 Step 1
          Print #1, linieDAT(sktal)
        Next
        Print #1, "Rank 3"
        Print #1, "  RankName                      = INI:" & txtbx_rankname.Text
        Print #1, "  SkillPointsNeeded            = " & txtbx_skillpointsneeded.Text
        Print #1, "  SciencesGranted              = SCIENCE_" & txtbx_Sciencesgranted.Text
        Print #1, "  SciencePurchasePointsGranted  = " & txtbx_puchasepoints.Text
        Print #1, "End"
        For sktal = 25 To 39 Step 1
          Print #1, linieDAT(sktal)
        Next
      Case 3
        For sktal = 5 To 25 Step 1
          Print #1, linieDAT(sktal)
        Next
        Print #1, "Rank 4"
        Print #1, "  RankName                      = INI:" & txtbx_rankname.Text
        Print #1, "  SkillPointsNeeded            = " & txtbx_skillpointsneeded.Text
        Print #1, "  SciencesGranted              = SCIENCE_" & txtbx_Sciencesgranted.Text
        Print #1, "  SciencePurchasePointsGranted  = " & txtbx_puchasepoints.Text
        Print #1, "End"
        For sktal = 32 To 39 Step 1
          Print #1, linieDAT(sktal)
        Next
      Case 4
        For sktal = 5 To 32 Step 1
          Print #1, linieDAT(sktal)
        Next
        Print #1, "Rank 5"
        Print #1, "  RankName                      = INI:" & txtbx_rankname.Text
        Print #1, "  SkillPointsNeeded            = " & txtbx_skillpointsneeded.Text
        Print #1, "  SciencesGranted              = SCIENCE_" & txtbx_Sciencesgranted.Text
        Print #1, "  SciencePurchasePointsGranted  = " & txtbx_puchasepoints.Text
        Print #1, "End"
  End Select
  Print #1, " "
  Close #1

End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub cmd_tilbage_Click()
Main.Show
Sharede.Hide
End Sub

Private Sub Form_Load()
  cmb_rank.AddItem "Rank 1", 0
  cmb_rank.AddItem "Rank 2", 1
  cmb_rank.AddItem "Rank 3", 2
  cmb_rank.AddItem "Rank 4", 3
  cmb_rank.AddItem "Rank 5", 4
 
End Sub
Avatar billede eqvaliser Nybegynder
27. januar 2004 - 23:52 #8
er det ikke 2d arrays jeg bruge til at det andet indhold af filen, sm jeg ikke arbejder med?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester