Avatar billede grydgaard Nybegynder
19. november 2002 - 09:30 Der er 4 kommentarer og
2 løsninger

sætte en sti

hejsa eksperter.

jeg har lavet et program som indlæser forskellige tekstfiler (textfiler med jokes).
nu er problemet bare at jeg mangler en måde at lave et variabel sti eftersom at det ikke er alle der har jokene til at ligge på samme sted (det er jo ikke alle der ligger programmerne i mappen c:\programmer\).

jeg definere selv navnet på textfilen. jeg skal bare vide hvordan jeg får en menu punkt (Set Path) til at smide en sti (som man selv skal skrive) ind i en inifil som ligger i på c:\

hvordan gør man det?
jeg skal have programmet til at oprette filen og smide stien ind i den og den må ikke tilføje linier... den skal overskrive hele filens indhold

er der nogen der kan hjælpe mig med det?

hvis du ønsker yderliger info skal du bare sige til her på eksperten eller på icq: 114535277
Avatar billede amerikaner Nybegynder
19. november 2002 - 10:07 #1
Here are the two subroutines I use to read and write to ini's

To overwrite to a file called c:\my.ini it would look like
  gs_WRITE_TO_FILE "c:\my.ini", "the text i'm writing", False

To read from an ini file
  gs_READ_INI "c:\my.ini"

You must have a global variant dimensioned - g_varINI_Array.  This is were i keep the ini values in an array for use throughout the system. If you only have one line in the ini than you could get away with changing the subroutine into a function.
Change in subroutine:
  Public Function gf_READ_INI(p_strFile As String) as String
and
  Input #1, gf_READ_INI


' =============================================================
' Module Type : Basic
' Module Name : basMain
' Object      :
' Proc Type  : Sub
' Proc Name  : gs_WRITE_TO_FILE
' Scope      : Public
' Description : Writes to the passed file
' Objects    :
' Globals    : g_strIT_Supporternavn
' Tested      : 28.10.02: AW
' History    : 14.01.02: AW: Original Code.
' =============================================================
Public Sub gs_WRITE_TO_FILE(p_strFile As String, p_strText As String, p_intAppend As Integer)
On Error GoTo ERR_gs_WRITE_TO_FILE
   
    If p_intAppend Then
        '-- Open file for append
        Open p_strFile For Append As #1
    Else
        '-- not append
        Open p_strFile For Output As #1
    End If
   
    Print #1, p_strText                            '-- Print text to file.

EXIT_gs_WRITE_TO_FILE:
    On Error Resume Next                            '-- In case file wasn't open
    Close #1                                        '-- Close file.
    Exit Sub
ERR_gs_WRITE_TO_FILE:
    If Err = 0 Then
    Else
        gs_STANDARD_ERROR "modMain.gs_WRITE_TO_FILE"
        GoTo EXIT_gs_WRITE_TO_FILE
    End If

End Sub

'********************************************************************
'  Locate the text file with information and place it into variant
'  for use in this program
'********************************************************************
Public Sub gs_READ_INI(p_strFile As String)
On Error GoTo ERR_gs_READ_INI
   
    Dim f_strRead As String, f_intX As Integer
   
    ReDim g_varINI_Array(10)
   
    Open p_strFile For Input As #1              '-- Open file for input.
   
    Do While Not EOF(1)                        '-- Loop until end of file.
        Input #1, f_strRead                    '-- Read data into variable.
        g_varINI_Array(f_intX) = f_strRead      '-- Set variable into array
        f_intX = f_intX + 1
    Loop

EXIT_gs_READ_INI:
    On Error Resume Next                        '-- In case file wasn't open
    Close #1                                    '-- Close file.
    Exit Sub
ERR_gs_READ_INI:
    If Err = 0 Then
    Else
        gs_STANDARD_ERROR "modMain.gs_READ_INI"
        GoTo EXIT_gs_READ_INI
    End If

End Sub
Avatar billede grydgaard Nybegynder
19. november 2002 - 10:27 #2
wow... den var hård at tygge på... :/ ser lige om jeg kan gennemskue den... er ikke så god til visual basic
Avatar billede amerikaner Nybegynder
19. november 2002 - 10:43 #3
OK here are the important parts

'-- Overwriting f_strWrite to the ini file
Open "c:\my.ini" For Output As #1
Print #1, f_strWrite                  '-- Print text to file.
Close #1     
                               
'-- Reading one line from the file into a variable f_strRead
Open "c:\my.ini" For Input As #1      '-- Open file for input.
Input #1, f_strRead                    '-- Read data into variable.
Close #1
Avatar billede joern Nybegynder
19. november 2002 - 11:17 #4
Hej.

Ja, 'amerikaneren' gør det godt nok drabeligt, men essensen i andet hug er da til at overskue.  At lægge ini-filen på roden af C-drevet er dårlig skik, men du er vel klar over at de kan lægge den i enhver mappe, der blot eksisterer.
Windows' mange mapper har jo forskellige navne efter om styresystem og sprogversion, men selve 'windows' hedder næsten altid sådan, så læg din ini-fil dér.  Det var også dér alle ini-filer lå før registry blev introduceret.

Jeg anvender selv ini-filer i mine programmer, og lægger dem altid i samme mappe som programmet ligger i, altså 'app.path'.

Open app.path & "\jokes.ini" for output as #1
  print #1, "sti_til_data"
Close #1

I programmet skal ini-filen så åbnes og stien anvendes

Open app.path & "\jokes.ini" for input as #1
  line input #1, brugersti
close #1

Når du åbner dine tekstfiler skal de altså åbnes fra

  Open brugersti & "dine_jokes.txt" for input as #2
    ......


M.v.h.  Jørn
Avatar billede grydgaard Nybegynder
19. november 2002 - 12:31 #5
hvordan får jeg inplanteret det i lige har sagt i denne menupunkt?


Private Sub Set_Path_Click()

    Dim newpath, oldpath
   
    oldpath = GetSetting(appname:="choosepath", _
    section:="settings", Key:="path", Default:="c:\")
   
    newpath = InputBox(prompt:="New path to jokes", _
    Title:="Choose path", Default:="c:\")
   
    If newpath <> "" Then
   
        SaveSetting appname:="choosepath", section:="settings", _
        Key:="path", setting:=newpath

    End If

End Sub
Avatar billede grydgaard Nybegynder
19. november 2002 - 13:16 #6
har fundet ud af det... :)
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