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

Suche und Ersetzen bzw. Anzeigen VB6

Frage Entwicklung VB for Applications

Mitglied: H5N1

H5N1 (Level 1) - Jetzt verbinden

15.11.2010, aktualisiert 16.11.2010, 3542 Aufrufe, 6 Kommentare

Hallo ich habe folgendes Problem:
ich habe eine Textdatei mit etwa folgendem Inhalt
NETWORK
TITLE =Taktgeber

SET ;
U "M200.0"; Takt Periode 0,1 sec
FP "M202.0";
Flankenmerker
= "M201.0"; Flanke 0,1 sec

U "M200.3";
Takt Periode 0,5 sec
FP "M202.1"; Flankenmerker
= "M201.1";
Flanke 0,5 sec

U "M200.5"; Takt Periode 1 sec
FP "M202.2";
Flankenmerker
= "M201.2"; Flanke 1 sec
NETWORK
TITLE =Takt 6 sec

SET ;
U "M201.2";
Flanke 1 sec
SPBN fl6t;

L "DB_Kommunikation OP".Taktgeber.Wert_6_sec; //Sekunden zählen

Diese Textdatei möchte ich Zeilenweise in VB einlesen.
(soweit kein Problem)

Jetzt möcht ich aber wenn zwei Slash in einer Zeile hintereinander sind den Text zwischen den Doppel-Slash und dem am Zeilenende befindlichen CrLf auf einem Label oder in einer Textbox ausgeben und nach einem Click zur nächsten Zeile mit dem Doppel-Slash gelangen und wieder anzeigen.

Geht das - nach ASCII-Zeichen suchen?
Eventuell kleines Bespiel wäre echt super.
Vielen Dank schon mal im voraus.

Gruß Frank

## Ich mache keine rechtscheibfehler, ich bin euch nur paar reformen voraus...
Mitglied: Biber
15.11.2010 um 19:40 Uhr
Moin H5N1,

sorry, bei der eigentlichen Frage kann ich nicht helfen - ich kenn mich sowohl mit VB wie auch mit 6 nur rudimentär aus.

Aber damit die geneigten Fachschroter erahnen können, wo du denn als Einziger an diesem Montag Doppel-Slashes meinst zu sehen,
deshalb mach ich die mal sichtbar mit ein paar Codetag-Restposten. Die liegen eh wie Blei in den Regalen hier

Dein Text sieht wie bereits gepostet so aus :

NETWORK
TITLE =Taktgeber

SET ;
U "M200.0"; Takt Periode 0,1 sec
FP "M202.0";
Flankenmerker
= "M201.0"; Flanke 0,1 sec

U "M200.3";
Takt Periode 0,5 sec
FP "M202.1"; Flankenmerker
= "M201.1";
Flanke 0,5 sec

U "M200.5"; Takt Periode 1 sec
FP "M202.2";
Flankenmerker
= "M201.2"; Flanke 1 sec
NETWORK
TITLE =Takt 6 sec

SET ;
U "M201.2";
Flanke 1 sec
SPBN fl6t;

L "DB_Kommunikation OP".Taktgeber.Wert_6_sec; //Sekunden zählen


..sieht mit Code-Formatierung ohne Zeilennummern ( < code type=plain > ) so aus:
NETWORK 
TITLE =Taktgeber 
 
      SET   ;  
      U     "M200.0"; //Takt Periode 0,1 sec 
      FP    "M202.0"; //Flankenmerker 
      =     "M201.0"; //Flanke 0,1 sec 
 
      U     "M200.3"; //Takt Periode 0,5 sec 
      FP    "M202.1"; //Flankenmerker 
      =     "M201.1"; //Flanke 0,5 sec 
 
      U     "M200.5"; //Takt Periode 1 sec 
      FP    "M202.2"; //Flankenmerker 
      =     "M201.2"; //Flanke 1 sec    
NETWORK 
TITLE =Takt 6 sec 
 
      SET   ;  
      U     "M201.2"; //Flanke 1 sec 
      SPBN  fl6t;  
 
      L     "DB_Kommunikation OP".Taktgeber.Wert_6_sec; //Sekunden zählen
...und mit Codeformatierung mit Zeilennummern ( < code > )so aus:
01.
NETWORK 
02.
TITLE =Taktgeber 
03.
 
04.
      SET   ;  
05.
      U     "M200.0"; //Takt Periode 0,1 sec 
06.
      FP    "M202.0"; //Flankenmerker 
07.
      =     "M201.0"; //Flanke 0,1 sec 
08.
 
09.
      U     "M200.3"; //Takt Periode 0,5 sec 
10.
      FP    "M202.1"; //Flankenmerker 
11.
      =     "M201.1"; //Flanke 0,5 sec 
12.
 
13.
      U     "M200.5"; //Takt Periode 1 sec 
14.
      FP    "M202.2"; //Flankenmerker 
15.
      =     "M201.2"; //Flanke 1 sec    
16.
NETWORK 
17.
TITLE =Takt 6 sec 
18.
 
19.
      SET   ;  
20.
      U     "M201.2"; //Flanke 1 sec 
21.
      SPBN  fl6t;  
22.
 
23.
      L     "DB_Kommunikation OP".Taktgeber.Wert_6_sec; //Sekunden zählen
Vielleicht kann die ja einer der VB-Bruzzler jetzt besser helfen.

Grüße
Biber
Bitte warten ..
Mitglied: bastla
15.11.2010 um 21:20 Uhr
Hallo H5N1!

Der folgende VBS-Schnipsel sollte sich einigermaßen schmerzfrei nach VB6 (derartiges habe ich dann doch nicht mehr bei der Hand ) portieren lassen (und macht hoffentlich das, was Du erreichen wolltest ):
01.
Set fso = CreateObject("Scripting.FileSystemObject") 
02.
Set File = fso.OpenTextFile("D:\Textdatei.txt") 
03.
 
04.
Do Until File.AtEndOfStream 
05.
    Line = File.ReadLine 
06.
    Pos = InStrRev(Line, "//") 
07.
    If Pos > 0 Then 
08.
        InterestingPart = Mid(Line, Pos + 2) 
09.
        WScript.Echo InterestingPart 
10.
    End If 
11.
Loop 
12.
File.Close
Zum Testen an der Kommandozeile mit
cscript //nologo Schnipsel.vbs
starten ...

Grüße
bastla

PS.: @Biber: Thanks - auf Basis des formatierten Beispiels ließ sich dann doch etwas mit dem Ganzen anfangen ...
Bitte warten ..
Mitglied: Nadm4you
15.11.2010 um 21:51 Uhr
Zitat von bastla:
Hallo H5N1!

Der folgende VBS-Schnipsel sollte sich einigermaßen schmerzfrei nach VB6 (derartiges habe ich dann doch nicht mehr bei der
Hand ) portieren lassen (und macht hoffentlich das, was Du erreichen wolltest ):
01.
Set fso = CreateObject("Scripting.FileSystemObject") 
02.
> Set File = fso.OpenTextFile("D:\Textdatei.txt") 
03.
>  
04.
> Do Until File.AtEndOfStream 
05.
>     Line = File.ReadLine 
06.
>     Pos = InStrRev(Line, "//") 
07.
>     If Pos > 0 Then 
08.
>         InterestingPart = Mid(Line, Pos + 2) 
09.
>         WScript.Echo InterestingPart 
10.
>     End If 
11.
> Loop 
12.
> File.Close 
13.
> 
Zum Testen an der Kommandozeile mit
cscript //nologo Schnipsel.vbs 
> 
starten ...

Grüße
bastla

PS.: @Biber: Thanks - auf Basis des formatierten Beispiels ließ sich dann doch etwas mit dem Ganzen anfangen ...


Nicht immer nur fertige Sachen suchen, sondern auch selbst mal Hirnschmalz einsetzen, deshalb mein VB 6 Code zur Anregung

Public break As Boolean
Private Sub Command1_Click()
break = True
End Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Form_Load()

Dim data As String 'Auffangvariable für den einzulesenden String definieren
Dim v() As String 'Splitstring dimensionieren ist ein Array ohne Dimensions Dimensions werden durch die Split-Fuunktion zugewiesen
Form1.Show
Open "c:\temp\test.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, data
v = Split(data, "//")
If UBound(v) > 0 Then
Text1.Text = v(1)
Do
DoEvents
Loop Until break = True
Debug.Print Text1.Text
break = False
End If
Loop
End
End Sub

Gruß
Nadm4you
Bitte warten ..
Mitglied: bastla
15.11.2010 um 22:04 Uhr
Hallo Nadm4you!

"Split()" ist auch schön ...

... allerdings wäre
Text1.Text = v(UBound(v))
genauer als
Text1.Text = v(1)
BTW:
Nicht immer nur fertige Sachen suchen, sondern auch selbst mal Hirnschmalz einsetzen
Wer ist denn der Adressat dieser Aufforderung?

Grüße
bastla

P.S.: Damit Du nicht suchen musst : Code-Formatierung ...
Bitte warten ..
Mitglied: H5N1
16.11.2010 um 13:07 Uhr
Vielen Dank für die schnelle Hilfe .
Das ich nur nach dem Doppel-Slash suchen muss und dann weitermachen kann hab ich gar nicht gecheckt.
Naja, manchmal sieht man den Wald vor lauter Bäume nicht.

Nochmal Vielen Dank für die Hilfe - Gruß Frank
Bitte warten ..
Mitglied: Biber
16.11.2010 um 16:58 Uhr
[OT, aber völlig]

Zitat von H5N1:
## Ich mache keine rechtscheibfehler, ...
Jetzt endlich hab ich Pointe verstanden... sozusagen scheibchenweise ....

Menno, fast eine vollen Tag später...*grmpfff*

[/OT, aber völlig]
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

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

(1)

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

Ähnliche Inhalte
Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (10)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...