Top-Themen

Aktuelle Themen (A bis Z)

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

Via Vb Zeilen in einem Textdokument zählen

Frage Entwicklung Basic

Mitglied: MisterGoogleHupf

MisterGoogleHupf (Level 1) - Jetzt verbinden

06.02.2008, aktualisiert 12.02.2008, 12420 Aufrufe, 8 Kommentare

Das Ganze soll in Vb mit Visual Studio (Console Appliaction) gelöst werden.

Hallo zusammen

Meine Aufgabe:

- Die Anzahl Zeilen in einem Textdokument zu zählen und oben beim Text reinschreiben


Sprich es sollte nachher etwa so aussehen.

Meine Idee war es die Zeilen in ein String einzulesen und nachher irgendwie zu zählen, doch bei der Umsetzung klappt es noch nicht ganz.

Danke schon im voraus.

Gruss

Von Google

1769

TextTexTextTextTexTextTextTexTextTextTexTextTextTexTextTextTexText
TextTexTextTextTexTextTextTexTextTextTexTextTextTexTextTextTexText
TextTexTextTextTexTextTextTexTextTextTexTextTextTexTextTextTexText
TextTexTextTextTexTextTextTexTextTextTexTextTextTexTextTextTexText
Mitglied: bastla
06.02.2008 um 14:54 Uhr
Hallo MisterGoogleHupf!

Das würde ich etwa so anlegen:
01.
Dim TestFile As String = "D:\Test.txt" 
02.
Dim sr As IO.StreamReader = New IO.StreamReader(TestFile) 
03.
Dim Text() As String = Split(sr.ReadToEnd, vbCrLf) 'zeilenweise in Array einlesen 
04.
sr.Close() 
05.
 
06.
Dim sw As IO.StreamWriter = New IO.StreamWriter(TestFile) 
07.
sw.WriteLine(CStr(UBound(Text) + 1)) 'Zeilenanzahl schreiben 
08.
sw.Write(Join(Text, vbCrLf)) 'Array schreiben 
09.
sw.Close()
Je nachdem, ob die letzte Zeile mit CrLF endet, wäre ev noch das "+ 1" wegzulassen.

Grüße
bastla
Bitte warten ..
Mitglied: MisterGoogleHupf
07.02.2008 um 10:42 Uhr
Hallo Bastler,

danke für die schnelle Antwort!

Der Code sieht nicht schlecht aus und funktioniert auch demensprechend. Das Problem liegt nur noch bei der Ausgabe des Wertes. Die Anzahl Zeilen werden nicht in dem Textdokument ausgegeben ...

Grüsse

von Google
Bitte warten ..
Mitglied: bastla
07.02.2008 um 12:38 Uhr
Hallo MisterGoogleHupf!

Die Anzahl Zeilen werden nicht in dem Textdokument ausgegeben ...
Kann ich nicht nachvollziehen - ich habe zum Test den geposteten Code in die Datei "D:\Test.txt" geschrieben - nach zweimaligem Starten als "Sub Main" einer VB2005Express-Konsolenanwendung (direkt aus der IDE) sieht der Dateiinhalt so aus:
01.
10 
02.
03.
Dim TestFile As String = "D:\Test.txt" 
04.
Dim sr As IO.StreamReader = New IO.StreamReader(TestFile) 
05.
Dim Text() As String = Split(sr.ReadToEnd, vbCrLf) 'zeilenweise in Array einlesen 
06.
sr.Close() 
07.
 
08.
Dim sw As IO.StreamWriter = New IO.StreamWriter(TestFile) 
09.
sw.WriteLine(CStr(UBound(Text) + 1)) 'Zeilenanzahl schreiben 
10.
sw.Write(Join(Text, vbCrLf)) 'Array schreiben 
11.
sw.Close()
Grüße
bastla
Bitte warten ..
Mitglied: MisterGoogleHupf
08.02.2008 um 09:41 Uhr
Hallo Bastla

ich werde mal den ganzen Code posten,da es vieleicht daran liegen könnte ... :D

Imports System.IO
Imports System.Text

Module Module1

Sub Main()

'Bestimmen und deklarieren der Variablen
Dim objStreamWriter As StreamWriter
Dim Dateiinhalt As String
Dim Datum As String = Today
Dim Zeit As String = Now


'Einlesen der Datei
Dateiinhalt = My.Computer.FileSystem.ReadAllText("pfad1 (Quelldatei)")

'Ersetzen des Teilstrings , durch ein Leerschlag
Dateiinhalt = Replace(Dateiinhalt, ",", " ")

'Erstellen der Datei im Texteditor
objStreamWriter = New StreamWriter("pfad2 (Ausgangsdatei)")

Dim File As String = "pfad1 (Quelldatei)"
Dim sr As IO.StreamReader = New IO.StreamReader(File)
Dim Text() As String = Split(sr.ReadToEnd, vbCrLf) 'zeilenweise in Array einlesen
sr.Close()

Dim sw As IO.StreamWriter = New IO.StreamWriter(File)
sw.WriteLine(CStr(UBound(Text) + 1)) 'Zeilenanzahl schreiben
sw.Write(Join(Text, vbCrLf)) 'Array schreiben
sw.Close()


'Einfügen von Komponenten für die Headzeile
objStreamWriter.Write("00" & vbTab & "OS1" & vbTab & Datum & Zeit & " " & vbTab & "PRO" & (Hier soll nachher die Zeilenanzahl ausgegeben werden) & vbNewLine)

'Einfügen des Strings "Dateiinhalt" in die Datei
objStreamWriter.Write(Dateiinhalt)

'Schliessen der Datei
objStreamWriter.Close()

End Sub

Wenns mir recht ist hat mein Kollege "EsstMehrBiberSchuetztdenWald" auch schon hier sein Senf abgegeben.

Danke für die Mühe die du hier reinsteckst, dazu ein ganz fettes Lob!

grüsse

MGH
Bitte warten ..
Mitglied: bastla
08.02.2008 um 17:12 Uhr
Hallo MisterGoogleHup!

Das ist ja eine recht interessante Mischung geworden ...

... aber vielleicht solltest Du es doch auf das Nötigste beschränken:
01.
Imports System.IO 
02.
Imports System.Text 
03.
 
04.
Module Module1 
05.
 
06.
    Sub Main() 
07.
 
08.
        'Bestimmen und deklarieren der Variablen 
09.
        Dim objStreamWriter As StreamWriter 
10.
        Dim Dateiinhalt As String 
11.
        Dim Datum As String = Today 
12.
        Dim Zeit As String = Now 
13.
        Dim FileIn As String = "pfad1 (Quelldatei)" 
14.
        Dim FileOut As String = "pfad2 (Ausgangsdatei)" 
15.
 
16.
        'Einlesen der Datei 
17.
        Dateiinhalt = My.Computer.FileSystem.ReadAllText(FileIn) 
18.
 
19.
        'Ersetzen des Teilstrings , durch ein Leerschlag 
20.
        Dateiinhalt = Replace(Dateiinhalt, ",", " ") 
21.
 
22.
        'Zählen der Zeilen 
23.
        Dim Text() As String = Split(Dateiinhalt, vbCrLf) 'Dateiinhalt zeilenweise in Array einlesen ... 
24.
        Dim Zeilenanzahl As Long = UBound(Text) + 1 '... und die Zeilenanzahl aus dem höchsten Index ermitteln 
25.
 
26.
        'Erstellen der Datei 
27.
        objStreamWriter = New StreamWriter(FileOut) 
28.
 
29.
        'Einfügen von Komponenten für die Headzeile 
30.
        objStreamWriter.WriteLine("00" & vbTab & "OS1" & vbTab & Datum & Zeit & " " & vbTab & "PRO" & CStr(Zeilenanzahl)) 
31.
 
32.
        'Einfügen des Strings "Dateiinhalt" in die Datei 
33.
        objStreamWriter.Write(Dateiinhalt) 
34.
 
35.
        'Schliessen der Datei 
36.
        objStreamWriter.Close() 
37.
 
38.
    End Sub 
39.
End Module
Anmerkungen:
  • Aus Gründen der Übersichtlichkeit habe ich die beiden Dateinamen bereits im Deklarationsblock festgelegt.
  • Die Verwendung von ".WriteLine" erspart das Hinzufügen eines "vbNewLine" am Ende der Zeile.

Grüße
bastla
Bitte warten ..
Mitglied: MisterGoogleHupf
12.02.2008 um 11:00 Uhr
Hallo Bastla ..

Danke es klappt schon ganz gut ... ausser das es mir oben folgendes ausgibt .. :D

00 OS1 12.02.200812.02.2008 10:59:13 PRO 728
727
726
(Formatierter Text) (Formatierter Text) (Formatierter Text) (Formatierter Text)
(Formatierter Text) (Formatierter Text) (Formatierter Text) (Formatierter Text)
(Formatierter Text) (Formatierter Text) (Formatierter Text) (Formatierter Text)

Ich schaue mal vieleicht kann ich das mit den Zahlen 726 und 727 auch selber beheben .. :D

Danke nochmals für deine antwort

grüsse

MGH
Bitte warten ..
Mitglied: bastla
12.02.2008 um 22:32 Uhr
Hallo MisterGoogleHupf!

Meine Interpretation: 726 und 727 können eigentlich nur aus zwei früheren Testläufen mit der ersten Version von oben stammen (da wurde nur die Zeilenanzahl in die Datei geschrieben) - wenn Du die ersten 3 Zeilen erntfernst, solltest Du den ursprünglichen Text erhalten, und nach einem neuerlichen Durchlauf des Programmes dürfte dann auch nur die neue Kopfzeile (mit Zeilenanzahl 726) aufscheinen ...

Grüße
bastla
Bitte warten ..
Mitglied: Viper747
23.06.2015, aktualisiert um 12:10 Uhr
Hallo,
dieses Thema ist zwar schon was älter, aber es gibt immer wieder Leute die das suchen.
Wie wäre es mit diesem 1-Zeiler?

Dim s$() = System.IO.File.ReadAllLines("D:\TEST.txt", System.Text.ASCIIEncoding.Default)

'Anschließend könnte man das Ergebnis wieder in die Datei schreiben:

System.IO.File.WriteAllText("D:\TEST.txt", s.Count.ToString + vbCrLf+vbCrLf, System.Text.ASCIIEncoding.Default)
System.IO.File.AppendAllLines("D:\TEST.txt", s, System.Text.ASCIIEncoding.Default)


Gruß
Viper747
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Zeilen aus Textdokument kopieren
gelöst Frage von stridingBatch & Shell6 Kommentare

Hallo Administrator-Community! Ich stehe mal wieder vor einer, für mich, komplizierten Aufgabe, und bestimmt kann mir auch diesmal jemand ...

HTML
Textdokument in HTML einbauen
gelöst Frage von deinernstjetztHTML2 Kommentare

Hallo, ich möchte in HTML ein Textdokument für zb. AGB's einbauen. Das sollte in einem ca 200x200px Feld angezeigt ...

Datenbanken
MySQL Trigger - Zählen von Zeilen (Count) und "Überwachen" einer Spalte
Frage von Oli-nuxDatenbanken3 Kommentare

Hallo, habe ein Problem und kann es leider selber mit MySQL Trigger nicht lösen. In der MySQL-DB bzw. in ...

VB for Applications
Neue Zeile in Excel per VB Script
gelöst Frage von TheFalconVB for Applications1 Kommentar

Hallo zusammen, ich habe ein Script welches soweit auch funktioniert. Ich möchte jetzt aber gerne, dass die Werte fortlaufend ...

Neue Wissensbeiträge
Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 8 StundenMac OS X1 Kommentar

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 15 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 16 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 19 StundenMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1018 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...