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

wert aus txt file auslesen

Frage Entwicklung VB for Applications

Mitglied: matt1967

matt1967 (Level 1) - Jetzt verbinden

24.11.2008, aktualisiert 25.11.2008, 6796 Aufrufe, 36 Kommentare, 1 Danke

hallo zusammen wäre super wenn einer von Euch ne Idee hätte

Ich habe ein txt. file mit circa 17000 Einträgen aus netzwerk access listen. die einträge sehen wie folgt aus:

access-list NoNAT-inside line 2 extended permit ip 10.100.96.0 255.255.255.128 172.16.21.0 255.255.255.0 (hitcnt=0)

nun kommt das erste Problem die Einträge können unetrschiedlich lang sein das bedeutet groß mit Excel Text in Spalten und filter is nicht
Ich bräucht aus jeder Zeile den Wert hitcnt wo der Wert > 0 ist

wie kann ich das am besten abfangen

Gruß
Matthias
36 Antworten
Mitglied: -Ohforf
24.11.2008 um 16:11 Uhr
Hallo matt,

Was verstehst du unter "unterschiedlich lang"?

Und welchen Wert benötigst du aus den entsprechenden Zeilen?
Alles oder nur einen bestimmten Teil?

Ich arbeite da gerade an etwas vergleichbaren,
Logdateien zwecks einpflegen in eine Datenbank normalisieren.

Leider ist VB nicht gerade mein Gebiet...

Gruß,
Niklas
Bitte warten ..
Mitglied: matt1967
24.11.2008 um 16:15 Uhr
HI Niklas,

vielen Dank für die schnelle Antwort. Ich benötige jede Zeile aus dem File wo der (hitcnt=0)
> 0 ist.

Mit unterschiedlich lange meine ich die Zeilelänge in einem Eintrag stehen zumn Beispiel mehrere IP Adressen drin. Damit bist in Excel nicht in der Lage den Text in Spalten zu unterteilen. Weil einmal würde der Eintrag dann in der 5 Spalte stehen und beim nächsten mal in der 6

VB ist nicht zwingend solange ich ne Lösung finden

Gruß
Matthias
Bitte warten ..
Mitglied: -Ohforf
24.11.2008 um 16:21 Uhr
Das hört sich ja noch relativ leicht an

Was soll denn das endgültige Ausgabeformat sein?
Bitte warten ..
Mitglied: matt1967
24.11.2008 um 16:23 Uhr
mach mich net fertig ich zerbreche mir meine grauen Zellen,
txt file würde genügen ansonsten überlasse ich es dir hauptsache ich kann es öffnen


Gruß
Matthias
Bitte warten ..
Mitglied: paulepank
24.11.2008 um 16:27 Uhr
Hallo Matthias,

Ich bräucht aus jeder Zeile den Wert hitcnt wo der Wert > 0 ist

du meinst sicherlich:
Ich bräucht jede Zeile, in der der Wert > 0 ist

wenn ja hilft:

01.
findstr /v /c:"0)" dein_log.txt > neuer_log.txt
cu paulepank
Bitte warten ..
Mitglied: matt1967
24.11.2008 um 16:42 Uhr
hi vielen Dank
aber das funktioniert nicht richtig, teilweise schreibt es die richtigen Zeilen raus , teilweise aber auch die mit einer 0 und teilweise werde strings gelöscht aus hitcnt = 0 wird dann hitcnt

hier mal ein beispiel wie ein eintrag aufgebaut ist

access-list NoNAT-inside line 4 extended permit ip 10.100.194.0 255.255.255.0 172.16.21.0 255.255.255.0 (hitcnt=0)
Bitte warten ..
Mitglied: -Ohforf
24.11.2008 um 16:48 Uhr
Zitat von paulepank:
01.
findstr /v /c:"0)" dein_log.txt > 
02.
> neuer_log.txt


Das würde bewirken, das jede Zeile aus deiner Logdatei
die nicht 0) enthält in eine neue Datei geschrieben
wird.

Wenn in deiner Logdatei Zeilen existieren die kein (hitcnt=0) enthalten,
würden diese ebenfalls übernommen.

Wenn das okay ist, wäre meine Lösung "overkill" ;)

Gruß,
Niklas
Bitte warten ..
Mitglied: paulepank
24.11.2008 um 16:50 Uhr
kann nicht sein,

mit diesen Testdaten:
01.
access-list NoNAT-inside line 2 extended permit ip 10.100.96.0 255.255.255.128 172.16.21.0 255.255.255.0 (hitcnt=0) 
02.
access-list NoNAT-inside line 2 extended permit ip 10.100.96.0 255.255.255.128 172.16.21.0 255.255.255.0 (hitcnt=1)  
03.
access-list NoNAT-inside line 2 extended permit ip 10.100.96.0 255.255.255.128 172.16.21.0 255.255.255.0 (hitcnt=2)  
04.
access-list NoNAT-inside line 2 extended permit ip 10.100.96.0 255.255.255.128 172.16.21.0 255.255.255.0 (hitcnt=0)  
05.
access-list NoNAT-inside line 2 extended permit ip 10.100.96.0 255.255.255.128 172.16.21.0 255.255.255.0 (hitcnt=123) 
und o.g. Code am Prompt wird das angezeigt (bzw in neue Datei geschrieben):

01.
access-list NoNAT-inside line 2 extended permit ip 10.100.96.0 255.255.255.128 172.16.21.0 255.255.255.0 (hitcnt=1)  
02.
access-list NoNAT-inside line 2 extended permit ip 10.100.96.0 255.255.255.128 172.16.21.0 255.255.255.0 (hitcnt=2)  
03.
access-list NoNAT-inside line 2 extended permit ip 10.100.96.0 255.255.255.128 172.16.21.0 255.255.255.0 (hitcnt=123) 
cu paulepank
Bitte warten ..
Mitglied: matt1967
24.11.2008 um 16:50 Uhr
das Problem ist das ich expilizit nach diesem String suchen

hitcnt = 0 oder > 0

wenn ich nur nach 0 suchen das kannst du vergessen da in jeder IP Adresse eine 0 vorkommen kann
Bitte warten ..
Mitglied: bastla
24.11.2008 um 16:53 Uhr
@-Ohforf
Wenn in deiner Logdatei Zeilen existieren die kein (hitcnt=0) enthalten, würden diese ebenfalls übernommen.
Dann eben:
findstr "(hitcnt=" dein_log.txt|findstr /v "(hitcnt=0)" > neuer_log.txt
Grüße
bastla
Bitte warten ..
Mitglied: paulepank
24.11.2008 um 16:53 Uhr
gib ein Beispielsatz für > 0
Bitte warten ..
Mitglied: matt1967
24.11.2008 um 16:58 Uhr
das ist ein Auszug aus dem Ergebnis. daselbe wie vorher oben beschrieben

access-list insideACL line 2 extended permit icmp any 172.16.20.0 255.255.255.0 echo (hitcnt=185)
access-list insideACL line 2 extended permit icmp any 10.100.147.160 255.255.255.224 echo (hitcnt=115)
access-list insideACL line 2 extended permit icmp any 194.173.20.128 255.255.255.240 echo (hitcnt=812)
access-list insideACL line 2 extended permit icmp any 194.173.20.128 255.255.255.240 unreachable (hitcnt=3)
access-list insideACL line 6 extended permit udp host 10.100.194.70 host 194.173.20.132 eq snmp (hitcnt=1)
access-list insideACL line 6 extended permit udp host 10.100.194.70 host 194.173.20.133 eq snmp (hitcnt=2)
access-list insideACL line 6 extended permit udp host 10.100.192.134 host 194.173.20.132 eq snmp (hitcnt=263)
access-list insideACL line 6 extended permit udp host 10.100.192.134 host 194.173.20.133 eq snmp (hitcnt=224)
access-list insideACL line 6 extended permit udp host hp-tacacs2 host 194.173.20.132 eq snmp (hitcnt=1)
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 10.100.147.160 255.255.255.224 range 5988 5989 (hitcnt=
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 194.173.20.128 255.255.255.240 range 5988 5989 (hitcnt=
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 194.173.20.144 255.255.255.240 range 5988 5989 (hitcnt=
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 194.173.20.160 255.255.255.240 range 5988 5989 (hitcnt=
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 194.173.20.176 255.255.255.240 range 5988 5989 (hitcnt=
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 194.173.20.192 255.255.255.224 range 5988 5989 (hitcnt=
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 194.173.20.32 255.255.255.240 range 5988 5989 (hitcnt=0
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 194.173.20.32 255.255.255.240 range 10000 10200 (hitcnt
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 194.173.20.32 255.255.255.240 range 11000 11100 (hitcnt
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 194.173.20.224 255.255.255.224 range 5988 5989 (hitcnt=
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 194.173.20.96 255.255.255.224 range 5988 5989 (hitcnt=0
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 194.173.20.96 255.255.255.224 range 10000 10200 (hitcnt
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 194.173.20.96 255.255.255.224 range 11000 11100 (hitcnt
Bitte warten ..
Mitglied: paulepank
24.11.2008 um 16:58 Uhr
du wirst doch nicht etwa das gemeint haben ?
am Prompt:
01.
findstr /c:"hitcnt>0" deine_log.txt > neue_log.txt
cu paulepank
Bitte warten ..
Mitglied: matt1967
24.11.2008 um 17:02 Uhr
auch net da erstellt er mir nur ein blank neue_log.txt
Bitte warten ..
Mitglied: bastla
24.11.2008 um 17:04 Uhr
@matt1967
Da "findstr" nur Zeilen filtert, kann dadurch eigentlich nichts (im Sinne von einzelnen Zeichen) "abgeschnitten" werden - poste doch bitte ein paar von den betroffenen Zeilen ...

Grüße
bastla
Bitte warten ..
Mitglied: matt1967
24.11.2008 um 17:07 Uhr
steht doch weiter oben drin

access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 10.100.147.160 255.255.255.224 range 5988 5989 (hitcnt=
Bitte warten ..
Mitglied: bastla
24.11.2008 um 17:08 Uhr
Und wie hat die Zeile vorher ausgesehen?
Bitte warten ..
Mitglied: matt1967
24.11.2008 um 17:10 Uhr
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 10.100.147.160 255.255.255.224 range 5988 5989 (hitcnt=0)

und ich brauche die Zeilen wobei hitcnt= keine 0 steht
Bitte warten ..
Mitglied: bastla
24.11.2008 um 17:12 Uhr
... und bei Verwendung meines Vorschlags von 16:53:00 wurde diese Zeile so wie oben gezeigt ausgegeben (bei mir nämlich nicht)?
Bitte warten ..
Mitglied: matt1967
24.11.2008 um 17:19 Uhr
wie sieht die Zeile dann bei Dir aus
Bitte warten ..
Mitglied: bastla
24.11.2008 um 17:24 Uhr
na gar nicht - sollte ja auch nicht ausgegeben werden (wegen "(hitcnt=0)") ...
Inzwischen hätte ich noch eine andere Fassung des "findstr" anzubieten:
findstr "(hitcnt=[^0][0-9]*)" deine_log.txt > neue_log.txt
(ist etwas kürzer )
Bitte warten ..
Mitglied: paulepank
24.11.2008 um 17:25 Uhr
das ist doch alles Quatsch mit Soße.
Wie schon erwähnt, schneidet findstr nichts ab.

ich vermute du hast keinen reinen ASCII-text oder du machst noch was anderes.

01.
type dein_log.txt|findstr /v /c:"0)"
bringt was ?
Bitte warten ..
Mitglied: matt1967
24.11.2008 um 17:31 Uhr
nein hast du denn gleich effekt sorry

@bastla geht nicht nur blank txt file
Bitte warten ..
Mitglied: bastla
24.11.2008 um 17:36 Uhr
Dann kann es eigentlich, wie von paulepank schon angeführt, nur daran liegen, dass sich in der Zeile Sonderzeichen befinden - kannst Du das überprüfen (zB mit einem Hex-Editor)?
Bitte warten ..
Mitglied: -Ohforf
24.11.2008 um 18:06 Uhr
Ich habe da so einen Verdacht...

Wenn ich richtig liege, handelt es sich um Logdateien
von einer Cisco Pix Appliance...

Und wenn ich mich recht entsinne liegt der Pix eine
Linux Distribution zu Grunde, dh. ihr habt ein anderes
Zeilenumbruchszeichen (LF vs. CR-LF).

Wenn ich nicht richtig liege, ignoriert das und
erschießt mich ;P

Gruß,
Niklas
Bitte warten ..
Mitglied: bastla
24.11.2008 um 19:31 Uhr
@-Ohforf
Auch wenn die Zeilen nur durch LF getrennt wären, sollten beide angebotenen Versionen funktionieren (das tun sie jedenfalls bei meinen Tests) ...

Grüße
bastla
Bitte warten ..
Mitglied: paulepank
24.11.2008 um 19:57 Uhr
@bastla,

das kann Ohforf leider nicht mehr lesen, da ich ihn gg. halb 7 erschossen habe

cu paulepank
Bitte warten ..
Mitglied: bastla
24.11.2008 um 20:07 Uhr
@paulepank
Warst Du da nicht ein klein wenig voreilig? Vielleicht hätte auch matt1967 gerne ...

Grüße
bastla
Bitte warten ..
Mitglied: matt1967
25.11.2008 um 09:55 Uhr
Hallo zusammen,
sorry musste gestern weg.

zu Niklas da liegst du richtig das ist ein log von einer pix.
@bastla fakt ist bei werden Zeilen verschluckt so wie ich es oben schon geschrieben habe. das geschieht aber nur bei den Zeilen die in der log eh schon länger sind als die andern. ich denke der vorschlag von Niklas ist nicht so abwegig insofern ich das als Laie beurteilen kann.

Nur wie bekommen ich das jetzt hin so das es funktioniert
Bitte warten ..
Mitglied: bastla
25.11.2008 um 13:11 Uhr
Hallo matt1967!

Wie schon oben erwähnt, habe ich mit einigen Deiner Beispielzeilen eine Testdatei erstellt und nur LF für Zeilenumbrüche verwendet:
access-list NoNAT-inside line 2 extended permit ip 10.100.96.0 255.255.255.128 172.16.21.0 255.255.255.0 (hitcnt=0) 
access-list NoNAT-inside line 2 extended permit ip 10.100.96.0 255.255.255.128 172.16.21.0 255.255.255.0 (hitcnt=1) 
access-list NoNAT-inside line 2 extended permit ip 10.100.96.0 255.255.255.128 172.16.21.0 255.255.255.0 (hitcnt=2) 
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 10.100.147.160 255.255.255.224 range 5988 5989 (hitcnt=0) 
access-list NoNAT-inside line 2 extended permit ip 10.100.96.0 255.255.255.128 172.16.21.0 255.255.255.0 (hitcnt=0) 
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 10.100.147.160 255.255.255.224 range 5990 5991 (hitcnt=4) 
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 194.173.20.32 255.255.255.240 range 10000 10200 (hitcnt=1) 
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 194.173.20.32 255.255.255.240 range 11000 11100 (hitcnt=0) 
access-list NoNAT-inside line 2 extended permit ip 10.100.96.0 255.255.255.128 172.16.21.0 255.255.255.0 (hitcnt=123)
Mit der Befehlszeile
findstr "(hitcnt=[^0][0-9]*)" deine_log.txt>neue_log.txt
erhalte ich folgenden Inhalt der "neue_log.txt":
access-list NoNAT-inside line 2 extended permit ip 10.100.96.0 255.255.255.128 172.16.21.0 255.255.255.0 (hitcnt=1) 
access-list NoNAT-inside line 2 extended permit ip 10.100.96.0 255.255.255.128 172.16.21.0 255.255.255.0 (hitcnt=2) 
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 10.100.147.160 255.255.255.224 range 5990 5991 (hitcnt=4) 
access-list insideACL line 20 extended permit tcp 10.100.130.0 255.255.255.0 194.173.20.32 255.255.255.240 range 10000 10200 (hitcnt=1) 
access-list NoNAT-inside line 2 extended permit ip 10.100.96.0 255.255.255.128 172.16.21.0 255.255.255.0 (hitcnt=123)
Die Zeilen in "neue_log.txt" sind ebenfalls nur durch LF getrennt.

Du kannst mir aber gerne ein Stück Deiner Logdatei mailen (meine Adresse hast Du per PN) ...

Grüße
bastla
Bitte warten ..
Mitglied: aFankhauser
29.07.2009 um 21:39 Uhr
Fix und fertig!
Falls dein System VBScript ausführt, sollte es so klappen (bei mir tut es dies zumindest)

Kopiere den Quelltext in eine neue Textdatei und speichere diese mit der Dateiendung .vbs .
Zeile 7 und 8 musst du noch anpassen.

01.
'********************************************************** 
02.
'author = aFankhauser (www.hiddenAlpha.ch) 
03.
'version = 1.0.1 
04.
'built = 29.07.2009 
05.
'********************************************************** 
06.
'Einstellungen 
07.
vD1 = "Quelle.txt" 'Pfad der Quelldatei 
08.
vD2 = "Ziel.txt" 'Pfad der Zieldatei 
09.
 
10.
const titel="Line sorter" 
11.
if MsgBox("Script ausführen?",4,titel)<>6 Then rEnde "abbr" 
12.
set oFso=CreateObject("scripting.FileSystemObject") 
13.
set oShell=CreateObject("wscript.shell") 
14.
if oFso.fileexists(vD1)=False Then 
15.
 MsgBox "Quelldatei kann nicht gefunden werden.",48,titel 
16.
 rEnde "" 
17.
End If 
18.
if oFso.fileexists(vD2)=True Then 
19.
 if MsgBox("Die Datei" & vbCrlf & vbCrlf & vD2 & vbCrlf & vbCrlf & "Existiert bereits." & vbCrlf & "Datei ersetzen?",32+4,titel)<>vbYes Then rEnde "abbr" 
20.
End If 
21.
set oD1 = oFso.opentextfile(vD1,1,1) 
22.
set oD2 = oFso.opentextfile(vD2,2,1) 
23.
Do Until oD1.atEndOfStream 
24.
 vA1 = oD1.readline 
25.
 'Filtert die Zahl heraus 
26.
 aA2 = Split(vA1,"(") 
27.
 aA3 = Split(aA2(1),"=") 
28.
 aA4 = Split(aA3(1),")") 
29.
 vA2 = aA4(0) 
30.
 if vA2>0 Then 
31.
  oD2.write vA1 & vbLf 
32.
 End If 
33.
Loop 
34.
oD1.close 
35.
oD2.close 
36.
set oD1 = Nothing 
37.
set oD2 = Nothing 
38.
rEnde "fertig" 
39.
 
40.
'--------------------------------------------------Routinen-------------------------------------------------- 
41.
Sub rEnde(art) 
42.
 Select Case art 
43.
  Case "abbr" 
44.
   MsgBox "Forgang wurde abgebrochen",,titel 
45.
  case "fertig" 
46.
   MsgBox "Filterung abgeschlossen.",64,titel 
47.
 End Select 
48.
 wscript.quit 
49.
End Sub
Bitte warten ..
Mitglied: bastla
29.07.2009 um 21:48 Uhr
@aFankhauser

Soll das ein verfrühtes Weihnachtsgeschenk für matt1967 sein (im Vorjahr ging sich's ja leider nicht mehr ganz aus)?

Grüße
bastla
Bitte warten ..
Mitglied: Biber
30.07.2009 um 00:58 Uhr
@aFankhauser

... oder, um aus dem Regelwerk des Bremer Alpenvereins zu zitieren:
"Keine Mund-zu-Mundbeatmung bei Verunglückten, die schon länder als sechs Monate liegen"

Grüße
Biber
Bitte warten ..
Mitglied: matt1967
30.07.2009 um 06:05 Uhr
@Frankhauser
danke trotzdem!

Gruß
Matt1967
Bitte warten ..
Mitglied: bastla
30.07.2009 um 10:10 Uhr
@Biber
"Keine Mund-zu-Mundbeatmung bei Verunglückten, die schon länger als sechs Monate liegen"
Ist ja in der Veterinärmedizin ähnlich (dort allerdings hinsichtlich der "Mund-zu-Hundbeatmung" ) ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...