Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1308to1312
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Schlüsselbegriffe aus Textdatei auslesen

Schlüsselbegriffe aus Textdatei auslesen
07.05.2013 10:46:04
Johannes
Hallo,
ich möchte aus einer Gantt project-Datei Elemente auslesen.
Gantt project ist ein Freeware MS project und speichert in
einem xml-Format ab, d.h. in Klartext mit Elementen, die wie
folgt aussehen:

(task id="83" name="Technical Specification is agreed"
color="#8cb6ce" meeting="true" start="2013-01-14"
duration="0" complete="0" expand="true")
(notes)(![CDATA[[myKEYWORD]]])(/notes)
(depend id="19" type="2" difference="0" hardness="Strong"/)
(/task)
(Anm: musste für dieses Formular die eckigen Klammern durch runde ersetzen)
Für solche tasks, die "myKEYWORD" enthalten (meine Schlüssel-
Meilensteine), möchte ich den Namen und das Datum auslesen und
in einer Liste ausgeben. Die Anzahl solcher tasks soll offen
sein.
In perl sähe das in etwa so aus (erst Name und Datum jeder Task
merken, dann, bei pattern-match ausgeben):

open(my $in,  ") {     # assigns each line in turn to $_
if ((/duration=\"0\"/)&&(/name=\"([^"]+)\".+start=\"([^"]+)\"/)) {
$task=$1;
$start=$2;
}
if (/\[\[(myKEYWORD)\]\]/) {
$i+=1;
print "$1 $i ($start): $task\n";
}
}
Lässt sich das in VBA ähnlich einfach realisieren, so dass ich das direkt aus Excel aufrufen kann?
Danke,
Johannes

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schlüsselbegriffe aus Textdatei auslesen
08.05.2013 14:43:42
bst
Hi Johannes,
etwas länger wird das in VBA nun schon ...
cu, Bernd
--
Option Explicit
Sub x()
Const cstrKeyWord As String = "myKEYWORD"
Dim varFile As Variant
Dim intHandle As Integer
Dim strOneLine As String
Dim objRe As Object, objMc As Object
Dim i As Long
varFile = Application.GetOpenFilename("Alle Dateien,*.*")
If varFile = False Then Exit Sub
Set objRe = CreateObject("vbscript.regexp")
objRe.Pattern = "name=""([^""]+)"".*start=""([^""]+)"""
intHandle = FreeFile
Open varFile For Input As #intHandle
While Not EOF(intHandle)
Line Input #intHandle, strOneLine
If InStr(strOneLine, "duration=""0""") Then
Set objMc = objRe.Execute(strOneLine)
If objMc.Count Then
If InStr(strOneLine, cstrKeyWord) Then
i = i + 1
Debug.Print cstrKeyWord; " "; i; " ("; objMc(0).SubMatches(1); "): "; objMc(0). _
SubMatches(0)
End If
End If
End If
Wend
Close #intHandle
Set objMc = Nothing
Set objRe = Nothing
End Sub

Anzeige

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige