| |
|
|
- Seite 1 - |
|
Torsten Rümker | Hallo, ich möchte gerne aus einer Textdatei (csv) einzelne Datensätze löschen. Bisher habe ich die Datei per: KompilierenMarkierenSeparieren eingelesen,
Jetzt möchte ich einzelne Zeilen bzw Datensätze daraus löschen können, doch leider komme ich nicht auf eine Idee, wie ich das hinbekomme ohne nachher leere Felder in meinen Arrays zu haben!? Oder ist es vielleicht sinniger direkt nach dem löschen des Datensatzes im Speicher die Datei komplett unter Auslassung von leeren Datensätzen neu zu schreiben um sie dann wieder einzulesen?
Datenbanken, selbst kleine werfen echt Probleme auf
MfG Torsten |
|
|
| Ich lerne, ob ich will oder nicht! Betriebssystem: - Ubuntu 15.x - Windows (diverse) XProfan Version: X2 | 14.11.2005 ▲ |
|
|
|
|
| |
|
- Seite 1 - |
|
Torsten Rümker | Ok, nach ein bischen zusätzlichem Nachdenken hab ich selbst eine Funktionierende Lösung gefunden: KompilierenMarkierenSeparieren
PROC Datei_einlesen
DECLARE Zeile$, zaehler&
@Sendmessage(filmliste&,$0184,0,0) FilmListe löschen
RESET #1
Let zaehler& = 1
WhileNot @EoF(#1)
INPUT #1, Zeile$
Datentraeger$[zaehler&] = @Substr$(Zeile$,1,";")
FilmName$[zaehler&] = @Substr$(Zeile$,2,";")
Beschreibung$[zaehler&] = @Substr$(Zeile$,3,";")
@Addstring(Filmliste&,FilmName$[zaehler&])
INC Zaehler&
EndWhile
Close #1
EndProc
PROC Datei_schreiben
DECLARE Zaehler&, Zeile$
Rewrite #1
LET Zaehler& = 1
WhileLoop @getCount(FilmListe&)
IfNot Datentraeger$[Zaehler&] = ""
Zeile$ = Datentraeger$[Zaehler&]+";"+FilmName$[Zaehler&]+";"+Beschreibung$[Zaehler&]
Print #1,Zeile$
EndIf
Inc Zaehler&
EndWhile
Close #1
EndProc
PROC Eintrag_loeschen
DECLARE Zaehler&
LET Zaehler& = 1
WhileLoop 1000
IF @GetString$(FilmListe&,@GetCurSel(FilmListe&)) = FilmName$[&loop]
LET Datentraeger$[&loop] =""
EndIf
EndWhile
Datei_schreiben
Datei_einlesen
EndProc
Also viel geschrei um nix Naja vielleicht hilft es ja einem anderen Anfänger
MfG Torsten |
|
|
| Ich lerne, ob ich will oder nicht! Betriebssystem: - Ubuntu 15.x - Windows (diverse) XProfan Version: X2 | 14.11.2005 ▲ |
|
|
|
|
| Schaue Dir auch mal die File-Unit an.
Achso - un poste es doch bei den Codesnippets - dort würden Anfänger wohl eher suchen. |
|
|
| |
|
|
|
Michael Wodrich | Hmm, bei einem Array mit 1000 Einträgen würde ich wirklich schon über die Nutzung einer dBase-Datenbank nachdenken. Außerdem ist da das Löschen einfacher. Und wenn Du das Ganze als CSV brauchst, dann reicht oft ein kleines Export-Upro. Die Adressen-Demo von Profan bietet hier ein ausreichendes Beispiel.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 15.11.2005 ▲ |
|
|
|
|
Torsten Rümker | Ganz ehrlich, ich habe den Array genommen, weil ich das immer so mache. Soll heißen ich hab erst losprogrammiert, und dann nachgedacht
Hast natürlich recht, mit einer DBASE Datenbank ist man natürlich viel flexibler.
Na dann: Frisch ans werk, ich wurschtel das ganze mal auf Datenbank um
MfG Torsten
PS: Da hätt ich auch eher dran denken können |
|
|
| Ich lerne, ob ich will oder nicht! Betriebssystem: - Ubuntu 15.x - Windows (diverse) XProfan Version: X2 | 15.11.2005 ▲ |
|
|
|
|
| Lol es geht auch noch noch noch schneller.
Wenn jeder Entry eine Datei wäre - wäre das Entfernen eines Entrys grad mal das Löschen einer Datei. |
|
|
| |
|
|
|
Torsten Rümker | Dann sieht der Datenbestand auf der Festplatte aber irgendwann albern aus, wobei das ganze natürlich auch wieder was für sich hat
Ok, bin auf ein Problem gestoßen bei der dbase Umstellung:
Wie bekomme ich ein Memofeld in ein RichEdit (und wieder zurück) ehrlich gesagt verstehe ich die Hilfe in dem Punkt Memo nicht so ganz
MfG Torsten |
|
|
| Ich lerne, ob ich will oder nicht! Betriebssystem: - Ubuntu 15.x - Windows (diverse) XProfan Version: X2 | 15.11.2005 ▲ |
|
|
|
|
Michael Wodrich | Da hast Du die Achillesferse von Profan erwischt.
Memofelder werden in die Listbox-Liste (profan-eigen) eingelesen und von dort auch wieder abgespeichert. Bearbeitung mit Editbox .
Es ist zwar möglich mit MoveListToEdit diese Daten in ein Editcontrol zu übertragen - aber leider gibt es keinen Rückweg.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 15.11.2005 ▲ |
|
|
|
|
Torsten Rümker | Oh, nee das passt mir gar nicht in den Kram.
Na gut dann also wieder zurück zur Version ohne dBase
Trotzdem danke
MfG Torsten |
|
|
| Ich lerne, ob ich will oder nicht! Betriebssystem: - Ubuntu 15.x - Windows (diverse) XProfan Version: X2 | 15.11.2005 ▲ |
|
|
|
|
Carlo Keil | [quote:7416517cbb=Michael Wodrich]Da hast Du die Achillesferse von Profan erwischt. (...) Es ist zwar möglich mit MoveListToEdit diese Daten in ein Editcontrol zu übertragen - aber leider gibt es keinen Rückweg.[/quote:7416517cbb] Wir wärs dann mit einer gemeinsamen BITTE BITTE-Attacke auf Roland? (Vielleicht kriegt ja jemand auch einen passenden Smiley hin. Meine künstlerischen Fähigkeiten reichen dafür leider nicht.) Ich eröffne mal:
@Roland: BITTE BITTE mach uns einen Rückweg
Gruß Carlo |
|
|
| |
|
|
|
| Gehst Du in die XProfan10 Rubrik der Bibliothek - dort gibts ein Thread dafür. |
|
|
| |
|
|
|
Normann Strübli | |
|
| |
|
|
| |
|
- Seite 2 - |
|
|
Michael Wodrich | Bei kleinen Memofeldern ist das sicher eine Lösung (das wir auch immer meckern müssen ).
Aber nichts desto trotz: es ist ein Umweg und so garnicht profan.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 16.11.2005 ▲ |
|
|
|