Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  Variablen in ASCII-Datei suchen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  Variablen in ASCII-Datei suchen (1409 mal gelesen)
Raggus1
Mitglied
NC-Programmierer


Sehen Sie sich das Profil von Raggus1 an!   Senden Sie eine Private Message an Raggus1  Schreiben Sie einen Gästebucheintrag für Raggus1

Beiträge: 182
Registriert: 28.03.2003

V4 4.22, V5R16 - V5R19SP6 32+64Bit
XP, Unix

erstellt am: 14. Sep. 2008 15:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,
kurz beschrieben ....ich habe da ein Problem, bei dem ich Hilfe gebrauchen könnte. Ich möchte eine ASCII-Datei öffnen und dann zeilenweise (weis nicht, ob es richtig ist) nach Variablen durchsuchen.
Genauer. Ich möchte prüfen, ob Variable 1 oder Variable 2 in einer Zeile steht (wenn, steht sie auch immer nur alleine in einer Zeile). Falls Variable 1 oder 2 gefunden wurde, muss nachfolgend in einer der nächsten Zeilen irgendwann Variable 3 stehen. Falls nur wieder Variable 1 oder 2 gefunden wird, sollte ein Meldung kommen, dass die zuerst gefundene Variable nicht "beendet" wird.
Also quasi so:
An oder On wird gesucht. Aus muss einem gefundenen An/On folgen, sonst eine Meldung An/On aus Zeile n hat kein Aus.

Ich hoffe, ich finde hier bisschen hilfe.
Momentan habe ich eine Lösung über IF Then als Schleife. Leider habe ich es noch nicht ganz so, wie ich es mir vorstelle. Momentan kann ich nur zwei Variablen (An/Aus) verarbeiten....

vg
Raggus

Ach so ...dass ganze programmiere ich in VB6.0.

[Diese Nachricht wurde von Raggus1 am 14. Sep. 2008 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Stelli1
Ehrenmitglied
Verm.-Ing.


Sehen Sie sich das Profil von Stelli1 an!   Senden Sie eine Private Message an Stelli1  Schreiben Sie einen Gästebucheintrag für Stelli1

Beiträge: 1526
Registriert: 17.08.2005

Map 2000-2010, Rasterdesign
MapGuide 6.5 - 2010
Oracle 9i,10g Enterprise
autodesk Topobase 2-2010
VS6, VS.net 2010

erstellt am: 14. Sep. 2008 17:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Raggus1 10 Unities + Antwort hilfreich

Hallo,

vielleicht so was in der Art ?

Code:

value=true
header1=false: header2=false
While not eof(1)
    line input #1, Zeile
    Select case Zeile
      case Variable1 ' AN
          if Header1= true then
            msgbox "Wert war schon an"
          end if
          Header1=true
      case Variable2 ' AN
          if Header2= true then
            msgbox "Wert war schon an"
          end if
          Header2=true
      case Variable3 ' AUS
          if Header1 = true or Header2 = true then
            Value=true
          else
            msgbox "Aus ohne AN, blabla"
          end if
          header1=false
          header2=false
    end select
wend


Häng doch mal deinen Code an damit man versteht was du machst.

Wilfried Stelberg

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Raggus1
Mitglied
NC-Programmierer


Sehen Sie sich das Profil von Raggus1 an!   Senden Sie eine Private Message an Raggus1  Schreiben Sie einen Gästebucheintrag für Raggus1

Beiträge: 182
Registriert: 28.03.2003

erstellt am: 15. Sep. 2008 09:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,
ich hoffe, du kanns mit meinem ersten Versuch etwas anfangen....

Dim T$, i&, j&, z&, x&, Lst$()

Open "c:\test.txt" For Input As #1
  T = Input(LOF(1), #1)
Close #1
Lst = Split(T, vbCrLf)

For i = 0 To UBound(Lst)
If Trim$(Lst(i)) = "AN" Then Exit For
'If Lst(i) = "an" Then Exit For
Next i
' MsgBox "cutcom/left in Zeile" & (i + 1) & " gefunden"
For j = i + 1 To UBound(Lst)
' MsgBox "Prüfen ab Zeile" & (j + 1) & " "
If Lst(j) = "aus" Then
ElseIf Lst(j) = "an" Then
GoTo jump
End If
Next j
jump:
MsgBox "In Zeile " & (j + 1) & " das erste aufeinander folgender an"

Danke für deine Code. Ich werde ihn später mal versuchen zu verstehen 

Gruß
Raggus

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Stelli1
Ehrenmitglied
Verm.-Ing.


Sehen Sie sich das Profil von Stelli1 an!   Senden Sie eine Private Message an Stelli1  Schreiben Sie einen Gästebucheintrag für Stelli1

Beiträge: 1526
Registriert: 17.08.2005

Map 2000-2010, Rasterdesign
MapGuide 6.5 - 2010
Oracle 9i,10g Enterprise
autodesk Topobase 2-2010
VS6, VS.net 2010

erstellt am: 15. Sep. 2008 11:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Raggus1 10 Unities + Antwort hilfreich

Hallo,

hier mal noch eine Variante

Code:

Open Datei for input as #1
isOn=false
While not eof(1)
    ' Eine Zeile aus der Datei lesen
    line input #1, Zeile
    ' Leerstellen abschneiden und in Grossbuchstaben
    Variable = ucase(trim(Zeile))
    ' Variable auswerten
    Select case Variable
      ' Wenn entweder AN oder ON steht
      case "AN","ON"
          ' War der Zustand schon AN wurde er nicht vorher ausgeschaltet
          if isOn = true then
            msgbox "Zustand war schon AN"
          end if
          ' Zustand merken
          isOn=true
      ' Wenn Ausgeschaltet
      case "AUS","OFF"
          ' Wenn der Zustand an war
          if isON = true then
            ' Alles OK Zustand wieder ausschalten
            isON=false
          else
            ' Zustand war nicht an
            msgbox "Zustand war schon AUS"
          end if
    end select
wend
close

Aber was willst du mit der Aktion bezwecken. Vielleicht kann man das viel einfacher machen.

Wilfried Stelberg

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Raggus1
Mitglied
NC-Programmierer


Sehen Sie sich das Profil von Raggus1 an!   Senden Sie eine Private Message an Raggus1  Schreiben Sie einen Gästebucheintrag für Raggus1

Beiträge: 182
Registriert: 28.03.2003

erstellt am: 15. Sep. 2008 15:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Stelli1,
super. Vielen Danke für deine Hilfe. Ich werde den Code mal in mein Projekt mit übernehmen (Falls du nichts dagegen hast?). Du hast mir sehr geholfen.
Der Hintergrund ist, dass ich damit meine arbeit schneller überprüfen kann. Wenn ich Daten für Bearbeitungsmaschinen erstelle kann es mal vorkommen, dass irgendwelche Befehle doppelt aufgerufen werden was zu einem Fehler führen kann. Bislang habe ich die Daten bei Unsicherheit "händisch" gecheckt ....ab nun ist es ja vorbei 

Also vielen Dank noch einmal

Gruß
Raggus1

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Raggus1
Mitglied
NC-Programmierer


Sehen Sie sich das Profil von Raggus1 an!   Senden Sie eine Private Message an Raggus1  Schreiben Sie einen Gästebucheintrag für Raggus1

Beiträge: 182
Registriert: 28.03.2003

V4 4.22, V5R16 - V5R19SP6 32+64Bit
XP, Unix

erstellt am: 15. Sep. 2008 21:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,
wie es manchmal so ist, kommen einen immer wieder neue Ideen...
Meine ist gerade.... Wie kann ich erkennen, wenn meine Variablen nicht alleine in einer Zeile stehen.
Ich habe es so versucht:

Case InStr("xx1", "xx2")
Aber das klappt nicht so.

Hast du da vielleicht noch einen letzten Tipp, Stelli1?

Gruß
Raggus

[Diese Nachricht wurde von Raggus1 am 15. Sep. 2008 editiert.]

[Diese Nachricht wurde von Raggus1 am 15. Sep. 2008 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Stelli1
Ehrenmitglied
Verm.-Ing.


Sehen Sie sich das Profil von Stelli1 an!   Senden Sie eine Private Message an Stelli1  Schreiben Sie einen Gästebucheintrag für Stelli1

Beiträge: 1526
Registriert: 17.08.2005

Map 2000-2010, Rasterdesign
MapGuide 6.5 - 2010
Oracle 9i,10g Enterprise
autodesk Topobase 2-2010
VS6, VS.net 2010

erstellt am: 16. Sep. 2008 11:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Raggus1 10 Unities + Antwort hilfreich

Hallo,

sind die Variablen dann irgendwie getrennt mit Leerzeihen, Komma oder so was ?
Du könnest dann die Variablen einer Zeile mit der Split Funktion in ein Array bringen.
Die Obergrenze des Arrays ist die Anzahl der Variablen (die erste hat den Index 0).

Code:
vars=split(Zeile," ")
if ubound(vars) > 0 then
  msgbox "Es sind " & ubound(vars) & " Variablen in einer Zeile"
end if

Wilfried Stelberg

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Raggus1
Mitglied
NC-Programmierer


Sehen Sie sich das Profil von Raggus1 an!   Senden Sie eine Private Message an Raggus1  Schreiben Sie einen Gästebucheintrag für Raggus1

Beiträge: 182
Registriert: 28.03.2003

erstellt am: 16. Sep. 2008 14:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Stelli1,
ja, die verschiedenen Variablen sind zumindest durch Leerzeichen von anderen Strings getrennt.
Ich werde mal sehen, wo ich deinen Code mit unterbringen kann. Momentan sehe ich das noch nicht so...

Ich kenne die Splitfunktion nur als Trenner von Dateinamen zur Dateiendung. Wenn ich es richtig sehe, soll die eingelesene Zeile an jedem Leerzeichen getrennt werden oder?
Jeder String der dann zwischen den "Trennung" liegt ist dann ein Array(var())? Oder ist jetzt alles quatsch was ich schreibe?
Gruß
Raggus

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz