Hallo,
jetzt habe ich über den Link, den du gepostest hast ein Beispiel gefunden.
1' ************************************************
2' * *
3' * db2000 - INI Ver.4.7.0.3 *
4' * writing & reading for [INI]tialization files *
5' * *
6' * by Massimo Mascalchi *
7' * massimo.mascalchi@db2000web.net *
8' * www.2ms-it.com - www.db2000web.net *
9' * *
10' ************************************************
11' * HISTORY ------------------------------------ *
12' * 12/09/1986 - created in Clipper *
13' * 03/02/1988 - adapted for QuickBasic *
14' * 18/10/2006 - " " Basic4ppc *
15' * -------------------------------------------- *
16' * 26/11/2010 - " " Basic4android *
17' * -------------------------------------------- *
18' ************************************************
19
20'Activity module
21Sub Process_Globals
22 'These global variables will be declared once when the application starts.
23 'These variables can be accessed from all modules.
24
25End Sub
26
27Sub Globals
28 'These global variables will be redeclared each time the activity is created.
29 'These variables can only be accessed from this module.
30
31End Sub
32
33Sub Activity_Create(FirstTime As Boolean)
34
35 Dim r As String
36
37 wrINI(File.DirRootExternal, "test.ini", "SESSION 1", "Code", "00001")
38 wrINI(File.DirRootExternal, "test.ini", "SESSION 1", "Name", "db2000")
39 wrINI(File.DirRootExternal, "test.ini", "SESSION 2", "Code", "00002")
40 wrINI(File.DirRootExternal, "test.ini", "SESSION 2", "Name", "Basic4ppc")
41
42 r = rdINI(File.DirRootExternal, "test.ini", "SESSION 1", "Code", "")
43 Msgbox(r, "db2000 file .INI ")
44 r = rdINI(File.DirRootExternal, "test.ini", "SESSION 1", "Name", "")
45 Msgbox(r, "test file .INI")
46 r = rdINI(File.DirRootExternal, "test.ini", "SESSION 2", "Code", "")
47 Msgbox(r, "test file .INI")
48 r = rdINI(File.DirRootExternal, "test.ini", "SESSION 2", "Name", "")
49 Msgbox(r, "test file .INI")
50
51End Sub
52
53Sub Activity_Resume
54
55End Sub
56
57Sub Activity_Pause (UserClosed As Boolean)
58
59End Sub
60
61#Region ***** ROUTINE DI SUPPORTO ALLA GESTIONE DEI FILE .INI *****
62
63#Region ***** LETTURA *****
64' *** legge un valore all'interno di un file .INI ***
65Sub rdINI(directory As String, fileINI As String, session As String, key As String, default As String)
66
67 Dim value As String ' valore della chiave
68 Dim rSESSION As String ' riga contenente il nome della sessione
69 Dim flgSESSION As Boolean ' flag di supporto alla sessione (True = trovata)
70 Dim rKEY As String ' riga contenente il nome e il valore della chiave
71 Dim rdTEXT As TextReader ' oggetto stream per la lettura del file
72 Dim p As Int '
73 Dim k As String '
74
75 ' assegna il valore di default:
76 value = default
77
78 ' verifica se il file esiste:
79 If File.Exists(directory, fileINI) = True Then
80 ' inizializza le variabili di controllo in uso:
81 rSESSION = ""
82 flgSESSION = False
83 rKEY = ""
84 ' apre il file .INI in lettura:
85 rdTEXT.Initialize(File.OpenInput(directory, fileINI))
86 ' lettura del file .INI riga per riga:
87 rSESSION = rdTEXT.ReadLine '.Trim
88 Do While rSESSION <> Null
89 ' se la stringa letta non è vuota:
90 If rSESSION <> "" Then
91 ' individua la sessone a cui la chiave appartiene:
92 If rSESSION.CompareTo("[" & session & "]") = 0 Then
93 ' la sessione è stata individuata:
94 flgSESSION = True
95 ' continua la lettura del file .INI riga per riga per individuare la chiave:
96 rKEY = rdTEXT.ReadLine
97 Do While rKEY <> Null
98 ' se la stringa letta non è vuota:
99 If rKEY <> "" Then
100 ' rileva il nome della chiave:
101 p = rKEY.IndexOf("=")
102 If p > -1 Then
103 If rKEY.SubString2(0, 0) <> "[" Then
104 k = rKEY.SubString2(0, p)
105 ' se il nome la chiave letta corrisponde al nome della chiave da rilevare:
106 If key.CompareTo(k) = 0 Then
107 ' assegna il valore della chiave trovata:
108 value = rKEY.SubString(p + 1)
109 Exit
110 End If
111 End If
112 End If
113 End If
114 ' esegue una nuova lettura:
115 rKEY = rdTEXT.ReadLine
116 Loop
117 End If
118 End If
119 If flgSESSION = True Then
120 ' la sessione è stata trovata, interrompi la ricerca (esci dal loop):
121 Exit
122 Else
123 ' la sessione non è stata trovata, continua nelle letture:
124 rSESSION = rdTEXT.ReadLine
125 End If
126 Loop
127 ' chiude il file .INI:
128 rdTEXT.Close
129 End If
130
131 Return value
132
133End Sub
134#End Region
135
136#Region ***** SCRITTURA *****
137' *** scrive o aggiorna un valore all'interno del file .INI ***
138Sub wrINI(directory As String, fileINI As String, session As String, key As String, value As String)
139
140 Dim nr As Int ' numero delle righe lette dal file .INI
141 Dim flgSESSION As Boolean ' flag di supporto alla sessione (True = trovata)
142 Dim flgKEY As Boolean ' flag di supporto alla chiave (True = trovata)
143 Dim rdTEXT As TextReader ' oggetto stream per la lettura del file .INI
144 Dim wrTEXT As TextWriter ' oggetto stream per la scrittura del file .INI
145 Dim rowtxt As String ' riga di testo in lettura/scrittura
146 Dim rKEY As String ' riga contenente il nome e il valore della chiave
147 Dim p As Int '
148 Dim k As String '
149
150 If File.Exists(directory, fileINI) = True Then ' verifica se il file .INI esiste...
151 ' inizializza le variabili di controllo in uso:
152 nr = 0
153 flgSESSION = False
154 flgKEY = False
155 ' apre il file .INI in lettura:
156 rdTEXT.Initialize(File.OpenInput(directory, fileINI))
157 ' apre un file .INI temporaneo in scrittura:
158 wrTEXT.Initialize(File.OpenOutput(directory, "ini.tmp", False))
159 ' lettura del file .INI riga per riga...
160 rowtxt = rdTEXT.ReadLine
161 ' loop per trovare la chiave nella sessione indicata:
162 Do While rowtxt <> Null
163 ' incrementa il contatore delle letture:
164 nr = nr + 1
165 If rowtxt <> "" Then ' se non si è raggiunta la fine del file .INI origine aperto in lettura...
166 If rowtxt.SubString2(0, 0) = "[" Then ' si tratta di una sessione...
167 If flgSESSION = False Then ' verifica se si tratta della sessione da individuare...
168 If rowtxt.CompareTo("[" & session & "]") = 0 Then
169 ' la sessione è stata individuata:
170 flgSESSION = True
171 End If
172 If nr > 1 Then ' se la sessione da scrivere è successiva al primo in elenco...
173 ' inserisce una riga vuota per migliorare la lettura del file:
174 wrTEXT.WriteLine("")
175 End If
176 wrTEXT.WriteLine(rowtxt) ' scrive la sessione trovata senza apportare modifiche...
177 Else
178 ' la sessione è cambiata...
179 flgSESSION = False
180 If flgKEY = False Then
181 ' ma non è stata trovata la chiave associata alla sessione...
182 wrTEXT.WriteLine(key & "=" & value) ' scrive la chiave e il suo valore come nuovi...
183 flgKEY = True
184 wrTEXT.WriteLine("") ' inserisce una riga vuota per migliorare la lettura del file...
185 wrTEXT.WriteLine(rowtxt) ' scrive la sessione trovata successiva a quella della chiave appena scritta...
186 Exit ' la ricerca della chiave è terminata, esci dal loop...
187 Else
188 wrTEXT.WriteLine("") ' inserisce una riga vuota per migliorare la lettura del file...
189 wrTEXT.WriteLine(rowtxt) ' scrive la sessione trovata senza apportare modifiche...
190 End If
191 End If
192 Else
193 If rowtxt <> "" Then ' esclude le righe vuote e controlla se si tratta di una chiave...
194 ' verifica se si tratta della chiave da individuare:
195 p = rowtxt.IndexOf("=")
196 If p > -1 AND flgSESSION = True Then ' se è una chiave associata alla sessione...
197 k = rowtxt.SubString2(0, p) ' estrae il nome della chiave...
198 If key.CompareTo(k) = 0 Then ' se il nome la chiave letta nel file .INI corrisponde al nome della chiave da individuare...
199 flgKEY = True ' la chiave è stata individuata...
200 wrTEXT.WriteLine(key & "=" & value) ' scrive la chiave con il relativo valore...
201 Exit ' la ricerca della chiave è terminata, esci dal loop...
202 Else
203 ' non si tratta della chiave attesa, scrive la riga letta senza modificarla:
204 wrTEXT.WriteLine(rowtxt)
205 End If
206 Else
207 ' si tratta di una chiave appartenente ad un altra sessione, scrive la riga letta senza modificarla:
208 wrTEXT.WriteLine(rowtxt)
209 End If
210 End If
211 End If
212 End If
213 rowtxt = rdTEXT.ReadLine ' legge una nuova riga dal file .INI origine...
214 Loop
215 ' copia le eventuali righe ancora da leggere dal file .INI origine in quello temporaneo:
216 Do While rowtxt <> Null
217 rowtxt = rdTEXT.ReadLine ' legge la riga dal file .INI origine...
218 If rowtxt <> Null Then ' se non si è raggiunta la fine del file .INI origine aperto in lettura...
219 wrTEXT.WriteLine(rowtxt) ' scrive la riga appena letta nel file .INI temporaneo...
220 End If
221 Loop
222 ' chiude il file .INI usato in lettura:
223 rdTEXT.Close
224 If flgSESSION = False AND flgKEY = False Then ' la sessione e la chiave non sono stati trovati...
225 wrTEXT.WriteLine("") ' inserisce una riga vuota per migliorare la lettura del file...
226 wrTEXT.WriteLine("[" & session & "]") ' scrive l'identificativo della sessione...
227 wrTEXT.WriteLine(key & "=" & value) ' scrive la chiave con il relativo valore...
228 End If
229 wrTEXT.Close ' chiude il file .INI temporaneo usato in scrittura...
230 Else
231 ' il file .INI non esiste quindi lo si crea con la sola sessione e con l'unica chiave:
232 wrTEXT.Initialize(File.OpenOutput(directory, fileINI, False))
233 ' scrive l'identificativo della sessione:
234 wrTEXT.WriteLine("[" & session & "]")
235 ' scrive la chiave con il relativo valore:
236 wrTEXT.WriteLine(key & "=" & value)
237 ' chiude il file .INI:
238 wrTEXT.Close
239 End If
240
241 If File.Exists(directory, "ini.tmp") = True Then ' se il file .INI temporaneo esiste...
242 If File.Exists(directory, fileINI) = True Then ' se esiste il file .INI origine...
243 File.Delete(directory, fileINI) ' lo si elimina...
244 End If
245 ' sostituisce il file .INI originale con quello temporaneo:
246 File.Copy(directory, "ini.tmp", directory, fileINI)
247 ' elimina il file .INI temporaneo:
248 File.Delete(directory, "ini.tmp")
249 End If
250
251End Sub
252#End Region
253
254#End Region
hier ist jetzt aber die Frage, wo genau finde ich in meinem Smartphone die abgelegte ini-datei?
bzw. wie komme ich darein?
gruß
Frank
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.