Strings in einer Textdatei durch größere ersetzen
Übersicht

![]() |
FirstdeathmakerBetreff: Strings in einer Textdatei durch größere ersetzen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also, ich habe folgendes Problem:
Ich programmiere gerade eine Datenbank. Beim arbeiten mit der Datenbank merke ich gerade, dass man, wenn man mit writeline arbeitet, so viele Zeichen nach der startposition löscht wie der neue Eintrag Zeichen hat. Nun ja, ich habe nur leider keinen Befehl gefunden mit dem ich den Datenstrang weiterschieben kann, also werden die nachfolgenden Datenzeilen angeknabbert: [Vor dem einfügen] 101.1.1=0,0|DATE:3.11.2004 101.1.2=0,0|DATE:3.11.2004 101.1.3=0,0|DATE:3.11.2004 101.1.4=0,0|DATE:3.11.2004 101.1.5=0,0|DATE:3.11.2004 [Nach dem einfügen] 101.1.1=0,0|DATE:3.11.2004 101.1.2=Tada,543|DATE:3.11.2004 .3=0,0|DATE:3.11.2004 101.1.4=0,0|DATE:3.11.2004 101.1.5=0,0|DATE:3.11.2004 Es gäbe ja die Brutale Möglichkeit einfach eine komplett neue Datei zu erstellen und sie am Ende umzubenennen, aber das wäre schlecht (weil langsam). MFG FDM |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich denke es gibt keine andere Möglichkeit, als alles neu abzuspeichern. Das macht ja auch Word und andere Programme immer so..... | ||
getlose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dateien schreiben/erstellen/umbenennen benötigt
relativ wenig zeit wenn du die files nicht gerade realtime abfragst. kannst den kran natürlich auch in types speichern und nachtragen--- |
||
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
och ich glaub so langsam ist es nicht, wenn du es nicht verschlüsseln willst. Ich weis zwar nicht wie groß es werden soll, aber speicher ein file lieber immer ganz neu.
du kannst natürlich für zeichenketten platz resevieren, sagen wir 100 Zeichen. Dann brauchst du eben nicht alles abspeichern, bist aber nicht mehr so flexibel. du kannst nicht mehr über 100 Zeichen abspeichern, und verbrauchst viel speicher (100Byte pro Zeichenkette ![]() ![]() |
||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja, also die Datenbank hat insgesammt 100*100*16 Einträge (Zeilen).
Das macht eine Roh-Filegröße von 4,38 MB. Das dauert also schon seine Zeit. Mein Problem besteht ja im Moment darin, die Datenbank per Scriptdatei zu updaten, d.h. ich habe folgendes Script: Code: [AUSKLAPPEN] DATE:2.11.2004
101.5.3=PlayerT[Sinus],8506554 ;Koordinate=Playername[Allyname],Punkte 105.6.2=Wiesel[Sinus],35465 DATE:3.11.2004 151.7.1=Wiesel[Sinus],35465 Und muss jetzt meine Datenbank mit den Daten abgleichen und wenn die Daten neuer oder vom gleichen Tag sind wird der Eintrag ersetzt. |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
das war doch schonmal... habe da doch was gecodet
https://www.blitzforum.de/viewtopic.php?t=5296 letzte Seite ..... aber besser immer einlesen und neu schreiben |
||
[BB2D | BB3D | BB+]
|
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Lade die Datei zu Beginn ein und speichere sie nur wieder wenn das Programm beendet wird oder explizit eine Save-Funktion aufgerufen wird.
Alle "Dateizugriffe" zur Laufzeit sollten nur im RAM stattfinden. Ist schneller, verhindert ein fragmentieren und (vorausgesetzt deine Software läuft stabil) sicher genug ist es auch. Du kannst ja auch ein Flag setzen ob die Datei überhaupt verändert wurde und wenn ja welches die erste geänderte Position ist und dann ab dort neu auf Disk schreiben. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke, Blade, so klappt es. Ich wollte zuerst kein so riesiges DIM-Feld nehmen, aber es ist die schnellste Methode.
Auf Danke an alle die mir sonst noch weitergeholfen haben! MFG FDM |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würd ne Datenbank ganz anders aufbauen. Z.B. so:
Tabellenname Spaltenname GrößeDerSpalteInZeichen TypDerSpalte Spaltendaten...... Spaltenname2 etc..... Dadurch brauchst du nur einmal die spalten definieren und musst nachher nur die Datenfelder aktualisieren. Falls du eine funktionierende Version einer Datenbank haben willst kannst du mich ja per PN anfragen. Unterstützt Befehle wie: rdb_init rdb_use_db rdb_create_db rdb_create_table rdb_insertinto_table rdb_selectfrom_table rdb_updatefrom_table rdb_exists_db ist zwar noch nichts sehr viel aber bisher hat es mir für alles ausgereicht, ich denke ich werde sobald das auch noch löschbefehle enthält und alles schön schnell funzt (an optimierung hat ich bisher fast noch gar nicht gedacht), ich das Ding nach Projekte verschiebe. Von der Funktionsweise zumindest von den Ergebnissen her, hab ich mich an MySQL gehalten, (was ich keinster Weise den Funktionsumfang und Leistung des MySQL-Servers nachkommt). |
||
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group