Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VB 6 Zeilen one fso löschen

Frage Entwicklung VB for Applications

Mitglied: waldgnarf

waldgnarf (Level 1) - Jetzt verbinden

16.09.2009, aktualisiert 18.10.2012, 5618 Aufrufe, 18 Kommentare

Hallo ich habe schon mit einem Code angefangen aber er bring mir den Text durcheinander, wenn gleiche Zeilen vorhanden sind die stehen bleiben sollen.
Ausserdem sieht ist es ziemlich viel um nur 6 Zeilen zu löschen, im Vergleich zu fso.

01.
        Dim ADRPFA As String = "C:\ADRESS.txt" 
02.
        Dim ZEIZAH = 1 
03.
        Do 
04.
            Try 
05.
                Dim ZEILEN As String() = My.Computer.FileSystem.ReadAllText(ADRPFA, System.Text.Encoding.Default).Split(vbCrLf) 
06.
                If ZEIZAH > 0 AndAlso ZEIZAH <= ZEILEN.Length Then 
07.
                    Dim STEWRI As IO.StreamWriter = Nothing 
08.
                    Try 
09.
                        STEWRI = New IO.StreamWriter(ADRPFA, False, System.Text.Encoding.Default) 
10.
                        Dim ZEILIS As Boolean = False 
11.
                        For Z As Integer = 0 To ZEILEN.Length - 1 
12.
                            If Z + 1 <> ZEIZAH Then 
13.
                                If ZEILIS Then STEWRI.Write(vbCr) 
14.
                                STEWRI.Write(ZEILEN(Z)) 
15.
                                ZEILIS = True 
16.
                            End If 
17.
                        Next 
18.
                    Catch ex As Exception 
19.
                    Finally 
20.
                        If Not IsNothing(STEWRI) Then STEWRI.Close() 
21.
                    End Try 
22.
                End If 
23.
            Catch ex As Exception 
24.
            End Try 
25.
            ZEIZAH = ZEIZAH + 1 
26.
        Loop While ZEIZAH < 6
Bin für jeden nützlichen Vorschlag Dankbar.

Gruß waldgnarf
Mitglied: bastla
16.09.2009 um 22:24 Uhr
Hallo waldgnarf!

Vielleicht erhältst Du mehr Vorschläge, wenn Du kurz beschreibst, was der Code eigentlich leisten soll ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
16.09.2009 um 22:31 Uhr
Moin @bastla
Vielleicht erhältst Du mehr Vorschläge, wenn Du kurz beschreibst, was der Code eigentlich leisten soll ...
Soweit ich es nachvollziehen kann, ist das Ergebnis schon prima, wenn denn nicht...
wenn gleiche Zeilen vorhanden sind die stehen bleiben sollen.

Brauchst Du etwa noch mehr Infos?

Heute war im ganzen Bereich Entwicklung wieder einer dieser Montage....

Grüße
Biber
Bitte warten ..
Mitglied: waldgnarf
16.09.2009 um 22:46 Uhr
Hallo nochmal, also ich wollte 6 der ersten Zeilen aus einer Textdatei löschen, aber nicht mit replace weil sonst in der Textdatei auch doppelte Zeilen gelöscht werden.

Gruß waldgnarf
Bitte warten ..
Mitglied: bastla
16.09.2009 um 22:51 Uhr
Hallo waldgnarf!
ich wollte 6 der ersten Zeilen aus einer Textdatei löschen
Wolltest Du das immer nach der Lottoziehung machen?

Grüße
bastla
Bitte warten ..
Mitglied: waldgnarf
16.09.2009 um 23:06 Uhr
Nein für ein Programm was mir an Hand der gesammelten Adressen Bewerbungen erstellt, weil es letztens so viele waren.

Gruß
Bitte warten ..
Mitglied: bastla
16.09.2009 um 23:12 Uhr
Hallo waldgnarf!

Bleibt trotzdem die Frage, welche Zeilen gelöscht werden sollen ...

Grüße
bastla
Bitte warten ..
Mitglied: TsukiSan
17.09.2009 um 01:27 Uhr
Hi,

es geht in VB6 sicher noch einfacher, 6 Zeilen aus einer Datei zu entfernen.
Dafür benötigen wir aber mehr Infos, wie z.Bsp.:

1) sieht die Datei aus?
2) welche Zeilen sollen genau entfernt werden
3) und welche nicht?

Gruß
Tsuki
Bitte warten ..
Mitglied: waldgnarf
17.09.2009 um 08:14 Uhr
Hallo,
das ganze würde dann so aussehen.:

Firmaname <----löschen
Ansprechpartner (z.B. Herr Blubber) <----löschen
Bahnhofstraße 15 <----löschen
46587 Arschderweltstadt <----löschen
09.09.2009 <----löschen
administrator.de <----löschen
Referenznummer (43654574325-S) <----löschen
Andererfirmaname
Ansprechpartner (z.B. Herr Blubber)
Bahnhofstraße 17
46587 Arschderweltstadt
09.09.2009
administrator.de
Referenznummer (44354545325-S)

Von denen wollte ich die ersten 6 Zeilen löschen, ohne das der Text durcheinander kommt.
Ich dachte es währe besser es ohne
01.
fso=CreateObject("FileSystemObject")
zu versuchen, weil ich das gesammte Programm auch ohne gemacht und gelesen habe das es auch besser ohne läuft.

Gruß waldgnarf
Bitte warten ..
Mitglied: bastla
17.09.2009 um 09:51 Uhr
Hallo waldgnarf!

Wenn es tatsächlich immer nur um die ersten 6 Zeilen geht, kannst Du wie gehabt den Dateiinhalt in ZEILEN() einlesen und dann einfach mit
01.
For i = 6 To ZEILEN.Length - 1 
02.
    STEWRI.WriteLine(ZEILEN(i)) 
03.
Next
wieder rausschreiben ...

Noch eine Anmerkung zu
... nicht mit replace weil sonst in der Textdatei auch doppelte Zeilen gelöscht werden.
Die Funktion Replace() kennt auch einen Parameter "Count", mit welchem Du festlegen kannst, wie viele Ersetzungen vorgenommen werden sollen (Du musst dann zusätzlich die "Start"-Position im String, zB 1, um am Anfang zu beginnen, angeben).

Grüße
bastla
Bitte warten ..
Mitglied: 76109
17.09.2009 um 11:42 Uhr
Hallo zusammen!

Ausser den chaotischen Kommunikatiosproplemen ist mir - nur so als Anmerkung - noch aufgefallen, dass im letzten Code-Beispiel von "waldgnarf", die ersten 7 Zeilen gelöscht werden sollen

Gruß Dieter
Bitte warten ..
Mitglied: waldgnarf
17.09.2009 um 11:45 Uhr
Danke bastla ich werds mal testen, aber mir ist aufgefallen das VB bei:
01.
INHALT=My.Computer.FileSystem.ReadAllText(TXTPFAD)
Zeichen wie z.B. ü,ö,ä bei der Umwandlung in einen String, durch ein Viereck ersetzt. Kann man das auch irgendwie umgehen?

Gruß waldgnarf
Bitte warten ..
Mitglied: bastla
17.09.2009 um 12:38 Uhr
Hallo waldgnarf!
Zeichen wie z.B. ü,ö,ä bei der Umwandlung in einen String, durch ein Viereck ersetzt. Kann man das auch irgendwie umgehen?
Mit dem passenden "Encoding"-Parameter von ReadAllText vielleicht?

Grüße
bastla
Bitte warten ..
Mitglied: waldgnarf
17.09.2009 um 18:16 Uhr
Hi, es tut mir leid aber ich bekomme es nicht hin.
01.
        Dim ADINSR As String() = My.Computer.FileSystem.ReadAllText(ADRPFA, System.Text.Encoding.Default).Split(vbCrLf) 
02.
        Dim STEWRI As StreamWriter = New StreamWriter(ADRPFA) 
03.
        For Z = 0 To ADINSR.Length - 1 
04.
            If Z > 6 Then Exit For 
05.
            STEWRI.WriteLine(ADINSR(Z)) 
06.
        Next
Mit diesen Code löscht er die ganze Datei aber ich hab keine Vorstellung was ich ändern soll.

Gruß waldgnarf
Bitte warten ..
Mitglied: 76109
17.09.2009 um 19:48 Uhr
Hallo waldgnarf!

Versuchs mal damit:
01.
  
02.
Dim ADINSR As String() = My.Computer.FileSystem.ReadAllText(ADRPFA, System.Text.Encoding.Default).Split(vbCrLf) 
03.
Dim STEWRI As StreamWriter = New StreamWriter(ADRPFA) 
04.
For Z = 7 To ADINSR.Length - 1 
05.
    STEWRI.WriteLine(ADINSR(Z)) 
06.
Next
Erste 7 Zeilen überspringen und ab Zeile 8 in Datei schreiben.

Gruß Dieter
Bitte warten ..
Mitglied: bastla
17.09.2009, aktualisiert 18.10.2012
@76109
Danke für die "Aushilfe" - am Vormittag hatte ich leider noch nicht vorhergesehen, dass aus ZEILEN() heute noch ADINSR() (und aus 6 Zeilen 7 ) werden würde(n) ...

Grüße
bastla
Bitte warten ..
Mitglied: waldgnarf
17.09.2009 um 20:34 Uhr
Hallo nochmal, Danke didi1954 aber das löscht leider auch den kompletten Text aus der Datei.

Gruß waldgnarf
Bitte warten ..
Mitglied: bastla
17.09.2009 um 20:56 Uhr
Hallo waldgnarf!

Dann eben so:
01.
Dim ADINSR As String() = Split(My.Computer.FileSystem.ReadAllText(ADRPFA, System.Text.Encoding.Default), vbCrLf) 
02.
Dim STEWRI = My.Computer.FileSystem.OpenTextFileWriter(ADRPFA, False) 
03.
For Z = 7 To ADINSR.Length - 1 
04.
    STEWRI.WriteLine(ADINSR(Z)) 
05.
Next 
06.
STEWRI.Close()
Grüße
bastla
Bitte warten ..
Mitglied: waldgnarf
17.09.2009 um 21:10 Uhr
Hi, und vielen Dank bastla bin froh das es doch klappt.

Gruß waldgnarf
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Router & Routing
gelöst Empfehlung günstiges ADSL2+ nur Modem (10)

Frage von TimMayer zum Thema Router & Routing ...

Server-Hardware
Lenovo Server System X 3650 M5 Festplatten (9)

Frage von Hendrik2586 zum Thema Server-Hardware ...