20 Texte in eine Datei? In 20 Dateien? Oder Datenbank?
20 Texte in eine Datei? In 20 Dateien? Oder Datenbank?
Hallo,
es geht um die Verwaltung von 20 verschiedenen Texten,
die der User nach belieben abändern kann.
Natürlich könnte man einfach für jeden Text 20 normale
.txt-Dateien anlegen, aber das ist ja eher unprofessionell.
Alles in eine Datei untereinander und getrennt durch
Sprungmarken wie bei einer .ini wären super, gibt es
dafür schon fertige Befehle?
Oder wie sieht es aus mit einer richtigen Datenbank?
Geht sowas OHNE das der User irgendwelche speziellen
Programme installiert haben muss (Access, SQL, ...)?
es geht um die Verwaltung von 20 verschiedenen Texten,
die der User nach belieben abändern kann.
Natürlich könnte man einfach für jeden Text 20 normale
.txt-Dateien anlegen, aber das ist ja eher unprofessionell.
Alles in eine Datei untereinander und getrennt durch
Sprungmarken wie bei einer .ini wären super, gibt es
dafür schon fertige Befehle?
Oder wie sieht es aus mit einer richtigen Datenbank?
Geht sowas OHNE das der User irgendwelche speziellen
Programme installiert haben muss (Access, SQL, ...)?
Ja du kannst auch nur [ nehmen ich hab so was ähnliches auch schon programmiert aber nur für Daten da kommt kein / for also.
Wenn du das / ändern willst musst du das hald auch im code ändern
Code: Alles auswählen
ReadFile(0,"Text.txt")
text$ = ReadString()
lpos = 0
Dim text.s(20)
For b = 0 To 19
If lpos = 0
pos1 = FindString(text$,"[",1)
pos2 = FindString(text$,"/",1)
lange = pos2 - pos1 - 1
text(0) = Mid(text$,pos1 + 1,lange)
Else
pos1 = FindString(text$,"/",lpos)
pos2 = FindString(text$,"/",lpos + 1)
lange = pos2 - pos1 - 1
text(b) = Mid(text$,pos1 + 1,lange)
EndIf
If b = 15
pos1 = FindString(text$,"/",lpos)
pos2 = FindString(text$,"]",lpos)
lange = pos2 - pos1 - 1
text(19) = Mid(text$,pos1 + 1,lange)
EndIf
lpos = pos2
Next b
-
- Beiträge: 274
- Registriert: 04.09.2004 01:43
- Wohnort: Würzburg
Code: Alles auswählen
Dim Texte.s(19)
; Texte() mit Texxten füllen z.B.
Texte(0)="Hallo!"
Texte(1)="Wie geht's?"
; usw...
CreateFile(0,"C:\Test.txt")
For i=0 To 19
WriteStringN(Texte(i))
Next
CloseFile(0)
;-------------
ReadFile(0,"C:\Test.txt")
For i=0 To 19
Texte(i)=ReadString()
Next
CloseFile(0)
; Und jetzt kann Texte() ausgelesen werden...
Debug Texte(0)
Debug Texte(1)
; o.Ä.

Hoffe, das hilft.

PureBasic 4.30
-
- Beiträge: 274
- Registriert: 04.09.2004 01:43
- Wohnort: Würzburg
Code: Alles auswählen
Dim Texte.s(19)
; Texte() mit Texxten füllen z.B.
Texte(0)="Hallo!"
Texte(1)="Wie geht's?"
; usw...
For i=0 To 19
ReplaceString(Texte(i),Chr(13)+Chr(10),Chr(25))
ReplaceString(Texte(i),Chr(10),Chr(25))
Next
CreateFile(0,"C:\Test.txt")
For i=0 To 19
WriteStringN(Texte(i))
Next
CloseFile(0)
;-------------
ReadFile(0,"C:\Test.txt")
For i=0 To 19
Texte(i)=ReadString()
Next
CloseFile(0)
For i=0 To 19
ReplaceString(Texte(i),Chr(25),Chr(13)+Chr(10))
Next
; Und jetzt kann Texte() ausgelesen werden...
Debug Texte(0)
Debug Texte(1)
; o.Ä.

Was besseres fällt mir im Moment nich' ein... *gääääääähhnn*

PureBasic 4.30
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Soll die Textdatei dann auch vom User lesbar sein? Wenn nicht könnte man doch einfach mit WriteData alles reinschreiben und mit ReadByte lesen. :P
Code: Alles auswählen
Dim Text.s(19) ;Array mit 20 Strings
;Schreibe unterschiedliche Texte in den Array
For k=0 To 19
Text(k) = "Dies ist Text Nr.: "+Str(k+1)
Next
If CreateFile(0, "C:\test.txt") ;Erstelle die Datei
For k=0 To 19
WriteData(@Text(k), Len(Text(k))+1) ;Schreib alles rein
Next
CloseFile(0)
EndIf
;Den Array leeren
For k=0 To 19
Text(k) = ""
Next
If ReadFile(1, "C:\test.txt") ;Datei auslesen
;Nützliche Variablen auf 0 setzen
char.b = 0
k = 0
While Eof(1) = 0
char = ReadByte()
If char = 0 ;Wenn das ausgelesene byte 0 ist(0 = ende eines Strings)...
Debug Text(k) ;...dann gib den vorherigen Text aus oder...
k + 1
Else
Text(k) + Chr(char) ;...füge dem Textarray das byte als Zeichen hinzu.
EndIf
Wend
CloseFile(1)
EndIf
DeleteFile("C:\test.txt") ;Lösche diese unnötige Datei ;)
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.