Italia
Foro

einzelne Datensätze aus einer Textdatei löschen

 

Torsten
Rümker
Ciao,
ich möchte gerne aus einer Textdatei (csv) einzelne Datensätze löschen.
Bisher habe ich die File per:
KompilierenMarkierenSeparieren
PROC Datei_einlesen

    DECLARE Zeile$, zaehler&
    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


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 File 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  
 




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

'./../../function-references/xprofan/endproc/'>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.
 
14.11.2005  
 




Michael
Wodrich
Hmm,
bei einem Array mit 1000 Einträgen würde ich wirklich schon circa 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 naturalmente recht, mit einer DBASE Datenbank ist man naturalmente 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 File wäre - wäre das Entfernen eines Entrys grad mal das Löschen einer File.
 
15.11.2005  
 




Torsten
Rümker
Dann sieht der Datenbestand auf der Festplatte aber irgendwann albern aus,
wobei das ganze naturalmente auch wieder was per 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 Aiuto 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 possibile 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 possibile 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

Saluto
Carlo
 
16.11.2005  
 



Gehst Du in die XProfan10 Rubrik der Biblioteca - dort gibts ein Thread dafür.
 
16.11.2005  
 




Normann
Strübli
Hi,

gehts nicht einfach so:
KompilierenMarkierenSeparieren
Saluto Normann
 
16.11.2005  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

1.254 Views

Untitledvor 0 min.
H.Brill25.11.2023
Andreas Koch23.05.2013
Uckermann17.09.2011
Frank Vorholzer25.04.2011

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie