Sie sind nicht angemeldet.

Tippspiel

Paule bei Facebook & Twitter

Google-Anzeigen

Empfehlung

Lieber Besucher, herzlich willkommen bei: Paules-PC-Forum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

horsthorn

MoRoGeP-Träger 2011

  • »horsthorn« ist der Autor dieses Themas

Beiträge: 3 286

Registriert: 6. Februar 2009

Wohnort: Heidelberg

  • Nachricht senden

1

Samstag, 10. Oktober 2009, 16:49

Text-String löschen...

Gibt es eine Möglichkeit, aus einer einfachen Textdatei einen String (Zeile) zu entfernen, ohne das eine Leerzeile bleibt ?
(Soweit bin ich schon. bloß die Leerzeile stört !)

PS: Mit CHR$(13) kann ich in der Datei mit PRINT #x% eine Zeile weiter schalten. Gibt es vielleicht einen CHR$(x%)-Befehl, der eine Zeile zurück schaltet ?
Gruss, horst :-)
Wenn Einfalt und Pedanterie zusammen treffen, entsteht Verwaltung ! :D


Windows-7 32-Bit - XProfan13.0ß-NT - Chrome 38.0.2125.111 m
Wer Zeit hat, hier meine Homepage


Unregistriert

unregistriert

2

Samstag, 10. Oktober 2009, 17:56

Hallo Horst,

nein gibt es nicht. Gibt Chr$(8) bkspc - löscht ein Zeichen rückwärts, aber nicht beim Schreiben in eine Datei.

horsthorn

MoRoGeP-Träger 2011

  • »horsthorn« ist der Autor dieses Themas

Beiträge: 3 286

Registriert: 6. Februar 2009

Wohnort: Heidelberg

  • Nachricht senden

3

Samstag, 10. Oktober 2009, 19:37

Hab das Problem jetzt anders gelöst:
In einer Listbox lösche ich den Eintrag mit DeleteString(.... und speicher dann den Inhalt der Listbox mit Rewrite #x% erneut in die Datei.
Klappt prima :-)
Gruss, horst :-)
Wenn Einfalt und Pedanterie zusammen treffen, entsteht Verwaltung ! :D


Windows-7 32-Bit - XProfan13.0ß-NT - Chrome 38.0.2125.111 m
Wer Zeit hat, hier meine Homepage

Unregistriert

unregistriert

4

Sonntag, 11. Oktober 2009, 00:33

Das ginge vlt. noch schneller ohne Umweg über LB per:

Quellcode

1
2
3
4
5
6
7
8
9
var zeileWeg&=221
var z&=0
assign #1
reset #1
assign #2
rewrite #2
whilenot eof(#1)
inc z&
casenot z&=zeileWeg& : print #2,

Frabbing

Super Moderator

Beiträge: 6 414

Registriert: 5. Februar 2009

Wohnort: Münsterland

  • Nachricht senden

5

Sonntag, 11. Oktober 2009, 10:57

Scheint so, als wäre der Code nicht vollständig.
Gruß, Frank

Geduld ist die Kunst, nur langsam wütend zu werden. :)

horsthorn

MoRoGeP-Träger 2011

  • »horsthorn« ist der Autor dieses Themas

Beiträge: 3 286

Registriert: 6. Februar 2009

Wohnort: Heidelberg

  • Nachricht senden

6

Sonntag, 11. Oktober 2009, 11:50

Zitat von »Frabbing;736075«

Scheint so, als wäre der Code nicht vollständig.


@Frank
Stimmt ! - :-)
Die Idee mit dem gleichzeitigen Schreiben hatte ich auch schon. Hier muss man aber eine temporäre Datei anlegen und dann den Inhalt der Temp-Datei hinterher in die eigentliche Datei speichern und dann noch die Temp-Datei löschen...
Für mich ist meine Version mit der Listbox(Gridbox) einfacher, weil auf der Oberfläche des Tools sowieso eine Gridbox steht ;)
Gruss, horst :-)
Wenn Einfalt und Pedanterie zusammen treffen, entsteht Verwaltung ! :D


Windows-7 32-Bit - XProfan13.0ß-NT - Chrome 38.0.2125.111 m
Wer Zeit hat, hier meine Homepage

Unregistriert

unregistriert

7

Donnerstag, 15. Oktober 2009, 21:50

Zitat von »horsthorn;736087«

Hier muss man aber eine temporäre Datei anlegen und dann den Inhalt der Temp-Datei hinterher in die eigentliche Datei speichern und dann noch die Temp-Datei löschen...


Nicht wenn man diese Zeile nicht übersieht:

Quellcode

1
casenot z&=zeileWeg& : print #2,


Dadurch das man gleich die Zieldatei angeben kann ist schneller als mit Liste.

Wenn man die Daten aber eh in einer ListBox benötigt, warum dann der Thread - deleteString$( ist schliesslich bekannt und wäre in diesem Fall sogar noch schneller, da nicht in der Schleife jeweils ein Vergleich stattfinden müsste sondern nur ein anschliessendes DeleteString$(...

Unregistriert

unregistriert

8

Donnerstag, 15. Oktober 2009, 21:52

Zitat von »horsthorn;736087«

Zitat von Frabbing Beitrag anzeigen
Scheint so, als wäre der Code nicht vollständig.

@Frank
Stimmt ! - :-)


Fein bemerkt, die Ausgangsfrage aber ist kein vollständiger Code.

Frabbing

Super Moderator

Beiträge: 6 414

Registriert: 5. Februar 2009

Wohnort: Münsterland

  • Nachricht senden

9

Donnerstag, 15. Oktober 2009, 22:11

Ich meinte eigentlich nur die Zeile:

casenot z&=zeileWeg& : print #2,

Hab den Code nicht ausprobiert, sieht hinten aber unvollständig aus. Aber wenn sie wie gewünscht einen Leercode einfügt, passt es ja.
Ich hab früher gerne anstelle z.B. der Zahl 0.13 einfach nur .13 geschrieben. Ging früher immer, funktioniert mit XProfan11 aber nicht mehr.
Gruß, Frank

Geduld ist die Kunst, nur langsam wütend zu werden. :)

horsthorn

MoRoGeP-Träger 2011

  • »horsthorn« ist der Autor dieses Themas

Beiträge: 3 286

Registriert: 6. Februar 2009

Wohnort: Heidelberg

  • Nachricht senden

10

Freitag, 16. Oktober 2009, 08:32

Nur zur Erinnerung, das war meine Frage:

Zitat

Gibt es eine Möglichkeit, aus einer einfachen Textdatei einen String (Zeile) zu entfernen, ohne das eine Leerzeile bleibt ?
(Soweit bin ich schon. bloß die Leerzeile stört !)


...mit Print #2, wird eine Lerrzeile eingefügt und die will ich ja weg haben ! Daher ist das erneute Einlesen über den Inhalt der Gridbox nach 'Deletestring(... ' für mich das beste. Ob es nun schneller oder langsamer geht, ist wahtscheinlich so minimal, daß es nicht auffällt :D
Gruss, horst :-)
Wenn Einfalt und Pedanterie zusammen treffen, entsteht Verwaltung ! :D


Windows-7 32-Bit - XProfan13.0ß-NT - Chrome 38.0.2125.111 m
Wer Zeit hat, hier meine Homepage

Bangkok

Forenmaskottchen

Beiträge: 677

Registriert: 9. Februar 2009

Wohnort: Bangkok

  • Nachricht senden

11

Freitag, 16. Oktober 2009, 09:19

Man könnte es auch so machen ohne Listbox ohne zwischenspeichern, wenn man nach Zeilennummern löschen will, muss man halt etwas umstellen

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
cls
declare b#,b$,file$,suchzeile$ ,in&
suchzeile$ = "Diese Zeile löschen"
file$ = LoadFile$("ÖFFNE:","*.TXT")
if file$ <> ""
Dim b#,filesize(file$)
Blockread(file$,b#,0,filesize(file$))
b$ = char$(b#,0,sizeof(b#))
in& = instr(suchzeile$,b$)
case in& <> 0:b$ = del$(b$,in&,Len(suchzeile$)+2) 'cr/lf mitlöschen
clear b#
Dim b#,len(b$)
char b#,0 = b$
Blockwrite file$,b#,0,sizeof(b#)
dispose b#
endif
end
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai.
http://dieterzornow.gmxhome.de

Zurzeit ist neben Ihnen 1 Benutzer in diesem Thema unterwegs:

1 Besucher

Thema bewerten