Autor Thema: Positionieren in einer Textdatei  (Gelesen 2951 mal)

Offline Lancelot

  • Senior Mitglied
  • ****
  • Beiträge: 357
  • Geschlecht: Männlich
  • Tu was Du willst, aber schade keinem!
Positionieren in einer Textdatei
« am: 07.12.06 - 17:31:09 »
Hy Leute,

ich habe ein Problem und hoffe Ihr habt vielleicht einen Lösungsansatz für mich.

Ich habe eine  txt- Datei mit 2 Mio. Sätze.
Satzaufbau:
123456;31122006;Mustermann;

Im Mail gibt es einen Knopf, der eine Dialogbox öffnet und dort soll man eine 6 stellige Zahl als Suchekritärium eingeben.
Notes sollte dann die anderen beiden Einträge in der Zeile der Datei wieder in die Dialogbox schreiben.

Wie stelle ich es in Notes an, dass ich gleich auf der 6 stelligen Zahl in der Datei positionieren kann.
Es gibt laut Hilfe einen Scriptbefehl "Seek", aber mit diesem haut das nicht hin.

Klar kann ich die Datei Schritt für Schritt durchlaufen, aber dann dauert alles zu lange.

Bin für alle Hilfen Dankbar.

Haben Notes 7.0.2 auf Server und Client.

Ach ja, Decs läuft bei uns nicht leider nicht und der EDV CHef möchte es auch nicht am laufen haben.
Gruß Gerry (Lancelot)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Positionieren in einer Textdatei
« Antwort #1 am: 07.12.06 - 17:37:53 »
Eine Textdatei ist eine sequentielle Datei, also ohne Index etc. Du kannst dort tatsächlich nur Zeile für Zeile durchgehen wie bei einem Tonband.

Seek (siehe Hilfe) bewirkt eh etwas ganz anderes.

Bernhard

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Positionieren in einer Textdatei
« Antwort #2 am: 07.12.06 - 17:45:41 »
Für seek müsstest Du wissen, wie groß der Datensatz ist.

Import in Notes-Dokumente und dann über den View suchen?
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Positionieren in einer Textdatei
« Antwort #3 am: 07.12.06 - 17:55:37 »
In Notes 7 kannst du theoretisch Java NIO nutzen. Das benutzt bestimmte OS-spezifischen Möglichkeiten, so dass es wirklich schneller geht. Einfach ist es aber nicht.
Im übrigen verstehe ich nicht, warum diese Daten nicht in einer Datenbank stehen.
Dafür sprechen Gründe von Effizienz, Sicherheit, Portierbarkeit, Kontrolle, Backup und und und.
Für Datenbankzugriffe aus Notes braucht es auch kein DECS. Gerade auch für den Zugriff von solch echt einfachen Datentrukturen gibts da wesentlich einfachere Lösungen.


« Letzte Änderung: 07.12.06 - 17:57:08 von Axel Janssen »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Positionieren in einer Textdatei
« Antwort #4 am: 07.12.06 - 18:10:19 »
Ach ja, Decs läuft bei uns nicht leider nicht und der EDV CHef möchte es auch nicht am laufen haben.

DECS oder nicht - ich kann mir aber nicht vorstellen, dass ausgerechnet der IT-Chef auf die Schnapsidee mit der sequentiellen Datei aus mindestens 50 Millionen Zeichen für einen "schnellen ad-hoc-Datenzugriff" gekommen ist. Denn damit geht es nun garantiert nicht "schnell".

Axels Worten ist aus meiner Sicht nichts hinzuzufügen.

Bernhard

Offline Lancelot

  • Senior Mitglied
  • ****
  • Beiträge: 357
  • Geschlecht: Männlich
  • Tu was Du willst, aber schade keinem!
Re: Positionieren in einer Textdatei
« Antwort #5 am: 08.12.06 - 07:09:21 »
Danke Euch Jungs.

Die Idee mit der Datei kam daher, weil es sich dabei um unsere Auftragstabel der AS 400 handelt und ich mit Notes sonst nicht an die Daten kommen würde.
Deswegen der Umweg über die Textdatei.

Nochmals Danke.
Gruß Gerry (Lancelot)

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Positionieren in einer Textdatei
« Antwort #6 am: 08.12.06 - 08:46:07 »
Tschuldigung aber das schreit ja förmlich nach einer JDBC/ODBC Verbindung.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Positionieren in einer Textdatei
« Antwort #7 am: 08.12.06 - 09:27:00 »
Ritter Lancelot,

sind die Daten nun
a) in einer Datenbank und wird daraus eine Textdatei generiert
b) in einer Textdatei.

Wenn sie in einer Datenbank sind:
für ODBC: Such nach LS:DO in der Designerhilfe
für JDBC: Würd ich präferieren, aber ich schreib eben auch die ganze Zeit Java. Vor allem mußt du dann erstmal in Erfahrung bringen, welchen JDBC Treiber du für die Datenbank verwenden kannst.

Das arbeiten mit Random Access Files ist jedoch imnsho spätestens seit den 80ern mega-out.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Otto

  • Frischling
  • *
  • Beiträge: 46
  • Geschlecht: Männlich
Re: Positionieren in einer Textdatei
« Antwort #8 am: 08.12.06 - 13:38:05 »
sollten sich Notes7 und AS400 über DB2 nicht bestens verstehen?
wasauchimmerdasindemzusammenhangheißenmag  ;-)

Gruß
Otto

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Positionieren in einer Textdatei
« Antwort #9 am: 08.12.06 - 15:44:20 »
Die verstehen sich schon lange nur wenn ich keinen UserAccount für die Daten bekomme, dann schaut es mau aus.  ;D
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Pyewacket

  • Senior Mitglied
  • ****
  • Beiträge: 310
  • Geschlecht: Männlich
Re: Positionieren in einer Textdatei
« Antwort #10 am: 12.12.06 - 10:20:05 »
Ganz so hoffnungslos ist der Fall nicht. Es müssen aber ein paar Bedingungen erfüllt sein.
- Die Exportdatei ist nach dieser Nummer die du suchst sortiert.
- jedes der drei Felder hat eine fixe Länge, ist der Inhalt kürzer muss mit Leerzeichen aufgefüllt werden.

Du kannst jetzt mit FileLen() die Grösse der Datei bestimmen.
Den Wert geteilt durch die Satzlänge ergibt die Anzahl Datensätze
Dieser Wert muss ein Vielfaches der festen Satzlänge sein, sonst stimmt was nicht.

Je nachdem wie du die Datei erzeugst musst du eventuell noch die Zeilenendekennung mit zur Satzlänge dazuzählen.

Open der Datei mit der Option Random und Angabe der Satzlänge

Mit der GET Anweisung kanns du nun unter Angabe der Satznummer direkt eine Zeile Lesen.
Das geht schon mal schneller als die Datei sequentiell durchzulesen.

Wenn du einen bestimmten Eintrag suchst, kannst du das mit binärem Suchen relativ schnell machen. Du liest den Satz in der Mitte der Datei. Je nachdem ob dein Suchbegriff grösser oder kleiner dem gefundenen ist musst du in der oberen oder unteren Hälfte weitersuchen bis du entweder den gewünschten Satz gefunden hast oder bis Unter- und Obergrenze des Suchbereichs gleich sind. Beschrieben ist das in der Wikipedia unter "Binäre Suche".
Bei 2 Mio Datensätzen müsstest du nach spätestens 21 Dateizugriffen den Datensatz haben oder wissen daß er nicht vorkommt.

ATOS.org - Feel the music!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz