DE69425208T2 - Verfahren und System zum Lokalisieren der Feldstruktur von Eingabedaten - Google Patents
Verfahren und System zum Lokalisieren der Feldstruktur von EingabedatenInfo
- Publication number
- DE69425208T2 DE69425208T2 DE69425208T DE69425208T DE69425208T2 DE 69425208 T2 DE69425208 T2 DE 69425208T2 DE 69425208 T DE69425208 T DE 69425208T DE 69425208 T DE69425208 T DE 69425208T DE 69425208 T2 DE69425208 T2 DE 69425208T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- characters
- columns
- field
- column
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 40
- 238000004458 analytical method Methods 0.000 claims description 5
- 230000008520 organization Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Document Processing Apparatus (AREA)
- Input From Keyboards Or The Like (AREA)
- User Interface Of Digital Computer (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
- Die vorliegende Erfindung betrifft allgemein ein Verfahren und ein System zum Empfangen von Eingabedaten und insbesondere ein Verfahren und ein System zum Lokalisieren von Feldumbrüchen innerhalb von Eingabedaten.
- Computer werden häufig verwendet, um Daten zu speichern und zu verarbeiten. Computerbenutzer verwenden gewöhnlich ein Anwendungsprogramm, um eine bestimmte Art von Daten zu speichern oder um Daten auf besondere Art zu bearbeiten. Ein besonderer Typ von Anwendungsprogramm wird als Datenbankanwendung bezeichnet und erlaubt es einem Benutzer, einen Körper von aufeinander bezogenen Daten in der Form einer Tabelle zu speichern und zu verarbeiten. Eine Tabelle setzt sich aus Datensätzen zusammen, die jeweils Daten zu einem bestimmten Gegenstand wie etwa einem mechanischen Bauteil zum Konstruieren eines Go-Karts enthalten. Jeder Datensatz entspricht einer "Zeile" von Daten, wobei eine Zeile durch ein Zeilenendzeichen wie etwa ein Zeilenumbruchzeichen beendet wird. Jeder Datensatz ist in einen Satz von Feldern oder Datenteilen unterteilt. Der Satz von Feldern ist für jeden Datensatz der Tabelle gleich. Zum Beispiel können die Felder in Bauteildatensätzen jeweils die Bauteilnummer, die Bauteilbeschreibung und die Bauteilkosten für ein bestimmtes Bauteil enthalten. Die Felder weisen gewöhnlich auch eine einheitliche Länge in jedem Datensatz auf, die durch die Anzahl der Zeichen angegeben wird.
- Fig. 1 ist ein Diagramm, das den Inhalt einer beispielhaften Tabelle zeigt. Die Tabelle 100 enthält zwanzig Datensätze 101-120, die jeweils Daten für jedes von sieben Feldern 131-137 enthalten. Die Felder sind ein Bestandsnummernfeld 131, ein Beschreibungsfeld 132, einen Feld 133 für die erforderliche Quantität, ein Feld 134 für den verantwortlichen Mechaniker, ein Feld 135 für die Einzelkosten, ein Feld 136 für die Gesamtkosten und ein Feld 137 für das erforderliche Datum. Um einen Go-Kart zu konstruieren braucht Sue am 16. Dezember 1993 zwei Achsen mit der Bestandsnummer 663661, die jeweils $215 kosten, so daß die Kosten also insgesamt $430,00 betragen. Dementsprechend enthält das Bestandsnummernfeld für den Datensatz 113 die Bestandsnummer "663661", enthält das Beschreibungsfeld die Beschreibung "axles", enthält das Feld für die erforderliche Quantität die Quantität "2", enthält das Feld für den verantwortlichen Mechaniker den Namen "Sue", enthält das Feld für die Einzelkosten die Einzelkosten "$215", enthält das Feld für die Gesamtkosten die Gesamtkosten "$430,00" und enthält das Feld für das erforderliche Datum das Datum "12/16/93". Diese Feldinhalte werden typischerweise in der Tabelle gespeichert, nachdem sie durch einen Benutzer eingegeben wurden. Ein Benutzer positioniert typischerweise einen Eingabecursor auf einem bestimmten Feld und tippt dann die einzutragenden Daten in das Feld ein. Dann weist der Benutzer die Datenbankanwendung unter Verwendung einer Nächstes-Feld- Taste wie etwa der Tabulatortaste an, den Eingabecursor zu einem anderen Feld zu bewegen.
- Einige Datenbankanwendungen speichern Tabellendaten in einem Feldformat mit einer festgelegten Feldbreite, wobei die Inhalte aller Felder von allen Datensätzen zusammen in einer Textzeichenkette gespeichert werden, wobei die Felder durch die absolute Position innerhalb der Kette abgegrenzt werden. Der Text umfaßt alphanumerische, numerische und andere Zeichen. Fig. 2 ist ein Diagramm der Information in der Tabelle von Fig. 1, die in der Form von Textketten gespeichert ist. Die Figur zeigt Zeichenpositionsnummern 201, die auch als Spaltennummern bezeichnet werden, über den Textketten. Die ersten sieben Zeichen jeder Kette enthalten den Inhalt des Bestandsnummernfelds, die Zeichen acht bis neunundzwanzig enthalten den Inhalt des Beschreibungsfelds usw. Die Feldbreiteninformation wird häufig separat zu den Tabellendaten gespeichert, so daß sie häufig nicht für andere Anwendungsprogramme wie etwa andere Datenbankanwendungen oder Tabellenkalkulationsanwendungen verfügbar sind, wenn diese die Tabellendaten lesen.
- Wenn eine Tabellenkalkulations- oder Datenbankanwendung eine Textdatei liest, die eine Tabelle mit einem Feldformat mit festgelegter Breite enthält, für das keine Feldbreiteninformation verfügbar ist, dann muß die Anwendung Feldumbrüche innerhalb der Tabellendaten positionieren. Typischerweise verwenden Tabellenkalkulations- und Datenbankanwendungen eines von zwei Verfahren, um Feldumbrüche in derartigen Daten zu positionieren. In dem ersten manuellen Verfahren, fordert das Anwendungsprogramm die erforderliche Information vom Benutzer an, wobei dieser entweder interaktiv die Breite jedes Feldes eingibt oder eine Steuerkette mit Information zu jedem Feld einschließlich der Breite eingibt. Dieses Verfahren weist jedoch den Nachteil auf, daß erforderlich ist, daß der Benutzer Information bereitstellt, die der Benutzer nicht kennt und schwer manuell bestimmen kann.
- Das zweite Verfahren ist das Einzeilenanalyseverfahren, das automatisch den Text in einem einzelnen Datensatz analysiert, typischerweise in dem ersten oder obersten Datensatz. Dies umfaßt gewöhnlich das Positionieren eines Feldumbruchs an jeder Position, an welcher der analysierte Datensatz ein nicht-wesentliches Zeichen wie etwa ein Leerzeichen aufweist, auf das ein wesentliches Zeichen wie etwa ein Buchstabe folgt. Dieses Verfahren weist jedoch den Nachteil auf, daß es die Feldumbrüche häufig falsch positioniert, weil ein einzelner Datensatz selten für die gesamte Tabelle repräsentativ ist. Fig. 3 ist ein Beispiel dafür, wie das Einzeilenanalyseverfahren zum Positionieren von Feldumbrüchen die Feldumbrüche in den in Fig. 2 gezeigten Textketten positionieren würde. Das Diagramm zeigt Feldumbrüche 301-304. Es ist deutlich, daß die Feldumbrüche 302, 303, 304 aufgrund von Idiosynkrasien des ersten Datensatzes alle falsch positioniert wurden: alle Feldumbrüche sind innerhalb eines Feldes und nicht zwischen zwei Feldern positioniert.
- In Programmers Journal May-June 1989, pp. 56-60 wird ein Verfahren zum Umwandeln einer ASCII-Textdatei mit Feldern, die durch ein eindeutiges Begrenzungszeichen getrennt sind, zu einer d-Base III-kompatiblen, durch Kommas begrenzten Datei erläutert.
- Es ist eine Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren und ein System in einem Computersystem zum Lokalisieren von Feldbrüchen innerhalb von Eingabedaten anzugeben.
- Diese Aufgabe wird durch das Verfahren nach Anspruch 1 und das System nach Anspruch 24 gelöst. Bevorzugte Ausführungsformen der vorliegenden Erfindung sind Gegenstand der abhängigen Ansprüche.
- Im folgenden werden bevorzugte Ausführungsformen mit Bezug auf die beigefügten Zeichnungen beschrieben:
- Fig. 1 ist ein Diagramm, das den Inhalt einer beispielhaften Tabelle zeigt.
- Fig. 2 ist ein Diagramm der in Fig. 1 gezeigten Information, die in der Form von Textketten gespeichert ist.
- Fig. 3 ist ein Beispiel dafür, wie das Einzeilenanalyseverfahren zum Positionieren von Feldumbrüchen die Feldumbrüche in den in Fig. 2 gezeigten Textketten positionieren würde.
- Fig. 4 ist ein Übersichtsblockdiagramm des Universalcomputersystems, auf dem die Einrichtung vorzugsweise betrieben wird.
- Fig. 5 ist ein Übersichtsflußdiagramm der Einrichtung.
- Fig. 6 ist ein Flußdiagramm, das den Schritt zum Zählen der Anzahl von wesentlichen Zeichen in jeder Datenspalte ausführlicher darstellt.
- Fig. 7 ist ein Flußdiagramm, das den Schritt zum Lokalisieren eines Feldumbruchs innerhalb jeder Reihe von Spalten mit Zählwerten unterhalb eines Feldumbruchschwellwerts ausführlicher darstellt.
- Fig. 8 ist eine Zähltabelle, welche die Werte der Matrix Count nach dem Zählen der in Fig. 2 gezeigten Daten zeigt.
- Fig. 9A ist ein Anzeigebild des Vorschaufensters, das die durch die Einrichtung automatisch lokalisierten Feldumbrüche anzeigt.
- Fig. 9B ist ein Anzeigebild desselben Vorschaufensters, nachdem der Benutzer den Benutzerschnittstellenteil der Einrichtung verwendet hat, um die Position eines Feldumbruchs zu korrigieren.
- Fig. 9C ist ein Anzeigebild desselben Vorschaufensters, nachdem der Benutzer den Benutzerschnittstellenteil der Einrichtung verwendet hat, um einen fehlenden Feldumbruch einzufügen.
- Fig. 10 ist ein Diagramm einer in der Form von Textketten gespeicherten Tabelle mit Überschriftinformation.
- Es werden ein Verfahren und ein System zum Lokalisieren von Feldumbrüchen innerhalb von Eingabedaten angegeben. (Das Lokalisieren von Feldumbrüchen wird auch als das Identifizieren oder Positionieren von Feldumbrüchen bezeichnet). In einer bevorzugten Ausführungsform erhält eine Softwareeinrichtung (Einrichtung) Tabellendaten in einem Format mit festgelegter Feldbreite (Eingabedaten), lokalisiert dann die Feldumbrüche in den Eingabedaten durch das Analysieren einer Gruppe von Zeilen der Eingabedaten. Die Einrichtung wählt eine Gruppe von Zeilen für die Analyse aus und zählt dann die Anzahl der wesentlichen Zeichen (nicht-Leerzeichen) an jeder Zeichenposition oder Spalte der Zeilen in der Gruppe. Die Einrichtung verwendet dann die Zählung, um zu bestimmen, welche Spalten weniger wesentliche Zeichen enthalten als ein Feldumbruch-Schwellwert. Die Einrichtung lokalisiert einen Feldumbruch innerhalb jeder Reihe von Spalten, die weniger wesentliche Zeichen enthalten als der Feldumbruch-Schwellwert. Die Einrichtung lokalisiert vorzugsweise jeden festgestellten Feldumbruch, indem sie zuerst eine benachbarte Gruppe von Spalten in der Reihe auswählt, die jeweils die kleinste Anzahl von wesentlichen Zeichen in der Reihe aufweisen. Diese Gruppe von Spalten wird als zusammenhängender minimaler Teilsatz bezeichnet. Die Einrichtung testet dann jede Spalte in der Nachbarschaft zu einem Ende des minimalen Teilsatzes, um zu sehen, ob Text mit dieser Spalte ausgerichtet ist. Wenn nur eine dieser Spalten ein Ausrichtungspunkt ist, dann lokalisiert die Einrichtung den Feldumbruch zwischen diesem Punkt und dem minimalen Teilsatz. Wenn keine oder beide Spalten einen Ausrichtungspunkt darstellen, dann lokalisiert die Einrichtung den Spaltenumbruch in der Mitte des minimalen Teilsatzes. Die Einrichtung umfaßt weiterhin eine Benutzerschnittstelle zum Hinzufügen, Löschen und Neupositionieren von Feldumbrüchen.
- Fig. 4 ist ein Übersichtsblockdiagramm des Universalcomputersystems, auf dem die Einrichtung vorzugsweise betrieben wird. Das Computersystem 401 umfaßt eine zentrale Verarbei tungseinheit (CPU) 402, einen Computerspeicher (Speicher) 403 und Eingabe/Ausgabe- Einrichtungen 404. Zu den Eingabe/Ausgabe-Einrichtungen gehört eine Speichereinrichtung 405 wie etwa ein Festplattenlaufwerk, eine Tastatur 406, eine Zeigeeinrichtung 407 wie etwa eine Maus und eine Anzeigeeinrichtung 408 wie etwa ein Bildschirm. Die Computerprogramme der Einrichtung residieren im Speicher und werden auf der CPU ausgeführt. Der Benutzer erhält vorzugsweise visuelle Information von der Einrichtung über den Bildschirm und interagiert mit dem Benutzerschnittstellenteil der Einrichtung unter Verwendung der Tastatur oder der Maus.
- Fig. 5 ist ein Übersichtsflußdiagramm der Einrichtung. In Schritt 501 wählt die Einrichtung eine Gruppe der Zeilen aus, welche die zu analysierenden Eingabedaten bilden. Die Einrichtung wählt eine Gruppe aus, die so groß ist wie möglich, wobei es allgemein nicht erforderlich ist, mehr als einige wenige hundert Zeilen auszuwählen. Es können beträchtliche Verbesserungen gegenüber dem Stand der Technik auch dann festgestellt werden, wenn nur einige wenige Zeilen ausgewählt werden.
- In Schritt 502 zählt die Einrichtung die Anzahl der wesentlichen Zeilen in jeder Spalte der ausgewählten Gruppe von Zeilen und speichert die Zählungen für alle Spalten in einer Matrix Count . Ein wesentliches Zeichen ist ein Zeichen, das wahrscheinlich Teil der Daten ist, etwa ein Buchstabe oder eine Ziffer. Nichtwesentliche Zeichen, die auch als Trennzeichen bezeichnet werden, sind dagegen Zeichen, die gewöhnlich nicht Teil der Daten sind, wie etwa Leerzeichen, Kommas, Tabulatorzeichen und Zeilenumbruchzeichen.
- In Schritt 503 identifiziert die Einrichtung Spalten mit Zählwerten unter einem Feldumbruch- Schwellwert, wobei die diese Bedingung erfüllenden zusammenhängenden Spalten als eine Reihe identifiziert werden (eine Reihe kann auch nur eine Spalte enthalten) und wobei später ein Feldumbruch in jeder Reihe lokalisiert wird. Der Feldumbruch-Schwellwert ist ein Prozentsatz der Gesamtanzahl der ausgewählten Zeilen, dessen Wert mit Bezug auf die erwartete Größe der Feldtrennungen gewählt wird. Je größer die erwartete durchschnittliche Anzahl der nicht-wesentlichen Zeichen zwischen Feldern ist, desto kleiner kann der Feldumbruch-Schwellwert gesetzt werden, wodurch die Chance eines falsch lokalisierten Feldumbruchs reduziert wird. Je kleiner umgekehrt die durchschnittliche Anzahl der nichtwesentlichen Zeichen zwischen Feldern ist, desto größer muß der Feldumbruch-Schwellwert gesetzt werden, wodurch die Chance eines falsch lokalisierten Feldumbruchs erhöht wird. Zum Beispiel wird für aktenartige Daten wie die in Fig. 2 gezeigten vorzugsweise ein Feldumbruch-Schwellwert von 12,5% gewählt. In einer bevorzugten Ausführungsform erlaubt die Einrichtung es dem Benutzer, den Feldumbruch-Schwellwert einzustellen. Zum Beispiel ist es möglich, daß ein Benutzer aus Erfahrung weiß, daß die Einrichtung häufig falsche Feldumbrüche in den Eingabedaten aus einer bestimmten Quelle setzt. Wenn dann in Zukunft Eingabedaten von dieser Quelle verarbeitet werden, dann kann der Benutzer den Feldumbruch-Schwellwert herabsetzen, um die Chance eines falsch lokalisierten Feldumbruchs zu reduzieren. Jede Reihe wird vorzugsweise mit einer Anfangsspaltennummer und mit einer Endspaltennummer gespeichert. Die Einrichtung verwirft vorzugsweise Reihen, die in der ersten Spalte beginnen oder in der letzten Spalte enden.
- In Schritt 504 lokalisiert die Einrichtung einen Spaltenumbruch innerhalb von jeder in Schritt 503 identifizierten Reihe, indem sie einen zusammenhängenden minimalen Teilsatz der Reihe auswählt und dann nach Ausrichtungspunkten bzw. Spalten, an denen Text in jeder Zeile des Texts der Eingabedaten ausgerichtet ist, an jedem Ende der Reihe überprüft.
- In Schritt 505 zeigt die Einrichtung die Daten in einem Vorschaufenster an, wobei die Feldumbrüche durch vertikale Linien angezeigt werden, und erlaubt es dem Benutzer, die Feldumbrüche zu manipulieren. Der Benutzer kann einen Feldumbruch neu positionieren, indem er denselben an eine neue Position zieht, und der Benutzer kann einen Feldumbruch löschen, indem er auf denselben doppelklickt. Der Benutzer kann einen neuen Feldumbruch erstellen, indem er auf eine Position in den Daten klickt, wo kein Feldumbruch existiert. Ein Benutzer kann weiterhin Scrollbalken zum Scrollen in beiden Dimensionen durch die Tabellendaten verwenden, um den Effekt seiner/ihrer Änderungen auf alle Felder und Zeilen zu betrachten.
- Fig. 6 ist ein Flußdiagramm, das den Zählschritt 502 ausführlicher darstellt. In den Schritten 601-609 initialisiert die Einrichtung eine mit den Spaltennummern indizierte Matrix Count und setzt dann jedes Element gleich der Anzahl der ausgewählten Zeilen mit einem wesentlichen Zeichen in der entsprechenden Spalte. In Schritt 601 initialisiert die Einrichtung die Matrix Count , indem sie jedes ihrer Elemente auf null setzt. In Schritt 602 setzt die Einrichtung einen Zähler RowIndex gleich der Zahl Anzahl der ersten ausgewählten Zeile. In Schritt 603 setzt die Einrichtung einen Zähler ColIndex gleich der ersten Spaltenzahl, vorzugsweise auf 1. Wenn in Schritt 604 die aktuelle Zeile und eine Spalte der Eingabedaten (Text[RowIndex, ColIndex] ein wesentliches Zeichen enthält, dann inkrementiert die Einrichtung die Zählung für die aktuelle Spalte (Count[ColIndex]) in Schritt 605, ansonsten fährt die Einrichtung mit Schritt 606 fort.
- Wenn in Schritt 607 der Aktuelle-Spalte-Zähler (ColIndex) kleiner ist als die letze Spaltennummer, dann inkrementiert die Einrichtung den Aktuelle-Spalte-Zähler und fährt in Schritt 604 fort, die nächste Spalte in derselben Zeile zu prüfen, ansonsten fährt die Einrichtung mit Schritt 608 fort. Wenn in Schritt 608 der Aktuelle-Zeile-Zähler (RowIndex) kleiner ist als die zuletzt ausgewählte Zeilennummer, dann inkrementiert die Einrichtung den Aktuelle-Zeile- Zähler und fährt in Schritt 603 fort, die erste Spalte der nächsten Zeile zu prüfen, ansonsten schließen die in Fig. 6 gezeigten Schritte ab.
- Fig. 7 ist ein Flußdiagramm, das den Lokalisierungsschrift 504 ausführlicher darstellt. In den Schritten 701-704 lokalisiert die Einrichtung einen Feldumbruch innerhalb jeder in Schritt 503 identifizierten Reihe, indem sie einen zusammenhängenden minimalen Teilsatz der Reihe auswählt und dann auf Ausrichtungspunkte an jedem Ende des minimalen Teilsatzes prüft. Diese Schritte werden für jede in Schritt 503 identifizierte Reihe ausgeführt. In Schritt 701 wählt die Einrichtung einen zusammenhängenden minimalen Teilsatz aus, der vorzugsweise als ein Anfangsspaltenwert und ein Endspaltenwert gespeichert ist.
- In den Schritten 702-704 lokalisiert die Einrichtung einen Feldumbruch entweder direkt außerhalb der Enden dieser in Schritt 503 ausgewählten zusammenhängenden minimalen Teilsätze oder so nahe wie möglich in der Mitte des ausgewählten zusammenhängenden minimalen Teilsatzes. Der zusammenhängende minimale Teilsatz entspricht ungefähr den leeren Spalten zwischen zwei Feldern. Wenn nur eine der zwei Spalten auf der Seite der leeren Spalten ausgerichtet ist, dann ist es am effizientesten, den Feldumbruch an diesem Ende des zusammenhängenden minimalen Teilsatzes zu lokalisieren. Wenn andererseits kein Feld oder beide Felder zu der Seite der leeren Spalten hin ausgerichtet sind, dann ist es am effizientesten, den Feldumbruch in der Mitte des zusammenhängenden minimalen Teilsatzes zu positionieren. Wenn in Schritt 702 genau eine der zwei Spalten außerhalb eines Endes des zusammenhängenden minimalen Teilsatzes ein Ausrichtungspunkt ist, dann fährt die Einrichtung in Schritt 703 fort, den Feldumbruch zwischen dem einen Ausrichtungspunkt und dem zusammenhängenden minimalen Teilsatz zu lokalisieren, ansonsten fährt die Einrichtung in Schritt 704 damit fort, den Feldumbruch in der Mitte des zusammenhängenden minimalen Teilsatzes zu lokalisieren. Die Einrichtung bestimmt, ob eine Spalte ein Ausrichtungspunkt ist, indem sie ihre Zählung mit einem Ausrichtung-Schwellwert vergleicht. Der Ausrichtung-Schwellwert ist wie der Feldumbruch-Schwellwert ein Prozentsatz der Gesamtanzahl der ausgewählten Zeilen, dessen Wert mit Bezug auf den erwarteten Datentyp gewählt ist. Vorzugsweise wird ein Ausrichtung-Schwellwert von 50% für die meisten Daten gewählt. In einer bevorzugten Ausführungsform erlaubt es die Einrichtung einem Benutzer, den Ausrichtung-Schwellwert einzustellen. Zum Beispiel ist es möglich, daß ein Benutzer aus Erfahrung weiß, daß die Einrichtung bei der Verarbeitung einer Eingabe von einer bestimmten Quelle dazu neigt, falsche Ausrichtungspunkte in den Eingabedaten festzustellen. Wenn in Zukunft Eingabedaten von derselben Quelle empfangen werden, reduziert der Benutzer den Ausrichtung-Schwellwert, um die Wahrscheinlichkeit von falsch erkannten Ausrichtungspunkten zu reduzieren. Die Einrichtung wiederholt dann die Schritte 701-704 für verbleibende Reihen.
- Das folgende Beispiel stellt den Betrieb der Einrichtung dar. Fig. 8 ist eine Zähltabelle, welche die Werte der Matrix Count nach der Ausführung von Schritt 502 für die in Fig. 2 gezeigten Daten zeigt. Die Zeilen der Zähltabelle 800 enthalten jeweils eine Spaltennummer und einen Zählwert. Der Zählwert für jede Zeile gibt die Anzahl der wesentlichen Zeichen (nicht-Leerzeichen) an, die in der numerierten Spalte enthalten sind. Zum Beispiel zeigt die Zähltabelle, daß die Spalte 10 (von Fig. 2) einen Zählwert von 18 aufweist, der gleich der Anzahl von wesentlichen Zeichen in Spalte 10 ist. Weil die beispielhaften Daten zwanzig Zeilen umfassen und ein Feldumbruch-Schwellwert von 12,5% gesetzt ist, ist der nominale Feldumbruch-Schwellwert gleich 2,5. Die Zählwerte werden in Schritt 503 mit dem Feldumbruch-Schwellwert verglichen, wobei zusammenhängende Spalten mit Zählwerten unter dem Feldumbruch-Schwellwert zu Reihen gruppiert werden. Die ersten Reihen in den beispielhaften Daten sind von Spalte 7 bis Spalte 7, von Spalte 30 bis Spalte 31, von Spalte 33 bis Spalte 33, von Spalte 46 bis Spalte 50 und von Spalte 58 bis Spalte 58. Um zum Beispiel einen zusammenhängenden minimalen Teilsatz in der Reihe auszuwählen, der mit Spalte 46 beginnt und mit Spalte 50 endet, wählt die Einrichtung in Schritt 504 den zusammenhängenden minimalen Teilsatz von Spalte 46 bis Spalte 49 aus, der einen Zählwert von 0 aufweist.
- Dem zusammenhängenden minimalen Teilsatz für Spalte 46 bis Spalte 49 geht die Spalte 45 mit einer Zählung von 20 voraus und folgt die Spalte 50 mit einer Zählung von 2. Der Ausrichtung-Schwellwert für die beispielhaften Daten ist 10 (es wird ein Ausrichtung-Schwellwert von 50% angenommen), der durch die Zählung der Spalte 45, aber nicht durch die Zählung der Spalte 50 überschritten wird. Weil die Einrichtung nur einen Ausrichtungspunkt erkennt, führt sie Schritt 703 aus, um den Feldumbruch zwischen dem minimalen Teilsatz (Spalte 49) und dem Ausrichtungspunkt (Spalte 50) zu lokalisieren.
- Fig. 9A ist ein Anzeigebild des Vorschaufensters, das die automatisch durch die Einrichtung lokalisierten Feldumbrüche anzeigt. Die Einrichtung zeigt das Vorschaufenster 900 in Schritt 505 als visuelle Schnittstelle für den durch die Einrichtung unterstützten Vorschaumodus an. Das Vorschaufenster enthält einen Teil der Tabellendaten 901, wobei die Position der Feldumbrüche in den Daten durch vertikale Balken 902-906 angegeben wird. Der Benutzer kann die Scrollbalken 907 und 908 zum Scrollen der Tabellendaten in beiden Dimensionen verwenden, um den Effekt seiner/ihrer Änderungen auf alle Felder und Zeilen zu betrachten. Aus Fig. 9A wird deutlich, daß die Einrichtung den Feldumbruch 903 falsch positioniert hat.
- Fig. 9B ist ein Anzeigebild desselben Vorschaufensters, nachdem der Benutzer den Schnittstellenteil der Einrichtung verwendet hat, um die Position des Feldumbruchs 903 zu korrigieren. Der Benutzer verwendet die Maus, um den Mauscursor über dem Feldumbruch 903 an dessen Anfangsposition zu positionieren, drückt eine Taste auf der Maus, verwendet die Maus, um den Mauscursor und damit auch den Feldumbruch zu seiner Zielposition zu verschieben, und läßt die Taste los. Die Einrichtung interpretiert diese Aktionen des Benutzers als einen Befehl zum Verschieben des Feldumbruchs und verschiebt den Feldumbruch zwischen den Spalten 31 und 32 auf zwischen den Spalten 29 und 30.
- Aus Fig. 9B wird deutlich, daß die Einrichtung weiterhin keinen Feldumbruch zwischen dem Feld für den verantwortlichen Mechaniker und dem Feld für die Einzelkosten lokalisiert hat. Fig. 9C ist ein Anzeigebild desselben Vorschaufensters, nachdem der Benutzer den Benutzerschnittstellenteil der Einrichtung verwendet hat, um den fehlenden Feldumbruch zwischen diesen Feldern einzufügen. Der Benutzer verwendet die Maus, um den Mauscursor zwischen den Spalten 38 und 39 zu positionieren und drückt eine Taste auf der Maus. Die Einrichtung interpretiert diese Aktionen des Benutzers als einen Befehl zum Hinzufügen eines Feldumbruchs und positioniert den Feldumbruch zwischen den Spalten 38 und 39.
- Die Einrichtung weist weiterhin Merkmale auf, welche die Effizienz steigern. In einer bevorzugten Ausführungsform stellt die Einrichtung fest, ob sie einen Feldumbruch innerhalb eines Feldes positioniert hat, das in einem von mehreren üblichen Datenformaten organisiert ist, das nicht-wesentliche Zeichen wie etwa Leerzeichen umfaßt. Zum Beispiel spezifizieren einige Datenformate, daß Teile der Daten durch Leerzeichen getrennt werden, wie etwa in der Wiedergabe "Aug3 1993" für den 3. August 1993. Die Einrichtung verwaltet vorzugsweise eine Tabelle für derartige Formate, die verschiedene Formate für die Uhrzeit ("12 : 30 PM") und die Währung ("3,500,00 fr.") sowie Formate für das Datum umfaßt, und vergleicht dieselben mit aufeinander folgenden Paaren von Feldern in den ausgewählten Zeilen der Eingabedaten. Wenn die Einrichtung ein Paar von Feldern lokalisiert, die zusammen dem Format entsprechen, dann entfernt sie den Feldumbruch zwischen denselben.
- Wenn in Schritt 501 die Eingabedaten eine große Anzahl von Zeilen umfassen, dann überspringt oder läßt die Einrichtung vorzugsweise Zeilen mit Überschriftinformation aus, die häufig anders als die tatsächlichen Daten formatiert sind. Fig. 10 ist ein Diagramm einer Tabelle, die in der Form von Textketten einschließlich von Überschriftinformation gespeichert ist. In den in Fig. 10 gezeigten Daten 1000 enthält die erste Zeile 1001 Überschriftinformation und sollte deshalb ausgelassen werden. In einer bevorzugten Ausführungsform überspringt die Einrichtung alle Zeilen am Beginn der Eingabedaten, die offensichtlich eine andere Formatierung aufweisen als die Hauptaufzeichnungen der Eingabedaten. In einer alternativen Ausführungsform überspringt die Einrichtung nur die ersten wenigen Zeilen der Daten unter Verwendung einer Heuristik, die davon ausgeht, daß die Überschriftinformation gewöhnlich nur in den ersten wenigen Zeilen der Daten enthalten ist.
- Es kann schwierig sein, einen Feldumbruch zwischen einem ersten links ausgerichteten Feld und einem zweiten rechts ausgerichteten Feld zu identifizieren, weil die Felder häufig durch nicht-wesentliche Zeichen in einzelnen Zeilen getrennt sind, wobei die Zählungen für die Spalten beiden Seiten des beabsichtigten Feldumbruchs häufig durchschnittlich beinahe denselben Wert aufweisen. Der Feldumbruch zwischen dem Feld 134 für den verantwortlichen Mechaniker und dem Feld 135 für die Einzelkosten in den beispielhaften Daten ist ein Beispiel für diese Situation. Aus der Zähltabelle wird deutlich, daß die letzte Spalte des Feldes (38) für den verantwortlichen Mechaniker sieben wesentliche Zeichen enthält, während die erste Spalte des Feldes (39) für die Einzelkosten zehn wesentliche Zeichen enthält. Weil keiner dieser Werte unter dem nominalen Feldumbruch-Schwellwert von 2,5 Zeichen ist, würde die Einrichtung normalerweise keinen Reihe zwischen diesen Feldern identifizieren und deshalb normalerweise keinen Feldumbruch zwischen denselben lokalisieren. Die Einrichtung ist vorzugsweise in der Lage, eine Mehrfachspalten-Zählung für mehrere Spalten zu erzeugen, um dieses Problem zu lösen. Wenn die Einrichtung dies erkennt, inkrementiert die Einrichtung die Mehrfachspalten-Zählung für eine bestimmte Spalte einmal für jede Zeile, in der sowohl die aktuelle Spalte wie die nächste Spalte beide ein wesentliches Zeichen enthalten. Die Mehrfachspalten-Zählung wird dann genauso wie die oben beschriebene Einfachspalten-Zählung analysiert. Die Verwendung der Mehrfachspalten-Zählung ist effizient, um einen Feldumbruch zwischen dem Feld für den verantwortlichen Mechaniker und dem Feld für die Einzelkosten zu erkennen.
- Es kann weiterhin schwierig sein, einen Feldumbruch zwischen zwei Feldern zu identifizieren, die durch wenige oder keine nicht-wesentlichen Zeichen getrennt sind. In einer bevor zugten Ausführungsform ist die Einrichtung jedoch in der Lage, einen Feldumbruch zwischen einem ersten Feld mit hauptsächlich Buchstaben und einem zweiten Feld mit hauptsächlich Ziffern zu erkennen. In dieser Ausführungsform erzeugt die Einrichtung zwei separate Zählungen: eine Zählung, in der nur Buchstaben als wesentliche Zeichen berücksichtigt werden, und eine Zählung, in der nur Ziffern als wesentliche Zeichen berücksichtigt werden. Die Einrichtung vergleicht dann die beiden Zählungen, um Spalten zu identifizieren, bei denen eine Zählung schnell abfällt und die andere abrupt ansteigt, und fügt zusätzliche Feldumbrüche bei diesen Spalten ein.
- Die vorliegende Erfindung wurde mit Bezug auf bevorzugte Ausführungsformen gezeigt und beschrieben, wobei dem Fachmann jedoch deutlich sein sollte, daß verschiedene Änderungen oder Modifikationen in der Form und im Detail vorgenommen werden können, ohne daß dadurch der Erfindungsumfang der vorliegenden Erfindung verlassen wird. Zum Beispiel kann ein anders gestalteter Benutzerschnittstellenteil verwendet werden, um Feldumbruch- Manipulationsbefehle von dem Benutzer zu empfangen. Weiterhin können die Zählwerte anders analysiert werden. Zum Beispiel können gleichzeitig mehr als ein Zählwert mit relativen Schwellwerten vergleichen werden. Weiterhin können komplexere Formen der statistischen Analyse auf die Zählwerte angewendet werden.
Claims (26)
1. Verfahren in einem Computersystem zum Lokalisieren von Feldumbrüchen (301, 302,
303, 304) innerhalb von Eingabedaten, wobei das Verfahren folgende Schritte umfaßt:
Empfangen von Eingabedaten, die eine Vielzahl von Datenzeilen umfassen, wobei
die Vielzahl von Datenzeilen geordnete Spalten aufweisen, die jeweils ein Zeichen enthalten,
das entweder wesentlich oder nicht-wesentlich sein kann,
wobei die wesentliche Zeichen die innerhalb der Datenfelder gestatteten Zeichen
sind,
Auswählen (501) von einer Vielzahl von Datenzeilen aus der Vielzahl von
Datenzeilen, wobei das Verfahren weiterhin durch folgende Schritte gekennzeichnet ist:
Identifizieren von Feldumbrüchen innerhalb der Eingabedaten, indem die
ausgewählten Datenzeilen durch das Zählen (502) der Anzahl von wesentlichen Zeichen in jeder Spalte
der ausgewählten Datenzeilen analysiert werden, wobei ein Zählwert für jede Spalte erzeugt
wird und wobei die Zählwerte in Übereinstimmung mit der Ordnung der Spalten angeordnet
werden, und
Positionieren von Feldumbrüchen (503, 504) an Spalten in Nachbarschaft zu Spalten,
die eine minimale Anzahl von wesentlichen Zeichen in bezug auf umgebende Spalten
aufweisen.
2. Verfahren nach Anspruch 1, wobei die Vielzahl von Datenzeilen geordnet sind, so
daß eine der Datenzeilen die oberste Datenzeile ist, wobei der Auswahlschritt einen Schritt
zum Auslassen einer zusammenhängenden Gruppe von einer oder mehreren Datenzeilen
einschließlich der obersten Datenzeile umfaßt.
3. Verfahren nach Anspruch 1, wobei die Zählwerte in Übereinstimmung mit der
Ordnung der Spalten geordnet sind, wobei die Datenzeilen Überschriftzeilen umfassen, die
Überschriftinformation enthalten, um den Inhalt von anderen Datenzeilen zu beschreiben,
und wobei der Auswahlschritt einen Schritt zum Auslassen der Überschriftzeilen umfaßt.
4. Verfahren nach Anspruch 1, wobei der Schritt zum Identifizieren von Feldumbrüchen
innerhalb der Eingabedaten auf der Basis der Zählwerte folgende Schritte umfaßt:
Identifizieren (503) von einer oder mehreren Reihen von Spalten für welche die
Zählwerte unter einem Feldumbruch-Schwellwert sind, und
Lokalisieren (504) eines Feldumbruchs innerhalb von jeder identifizierten Reihe von
Spalten.
5. Verfahren nach Anspruch 4, wobei der Schritt zum Identifizieren von einer oder
mehreren Reihen von Spalten, für welche die Zählwerte unter einem
Feldumbruch-Schwellwert sind, einen Schritt zum Auslassen einer Reihe von Spalten umfaßt, für welche die
Zählwerte unter dem Feldumbruch-Schwellwert sind und die in der Ordnung der Spalten vor
der ersten Spalte auftreten, für die der Zählwert größer als der Feldumbruch-Schwellwert ist.
6. Verfahren nach Anspruch 4, wobei die Eingabedaten einen oder mehrere
Ausrichtungspunkte enthalten können, die jeweils eine Spalte in den Eingabedaten sind, mit welcher
Daten in jeder Datenzeile der Eingabedaten ausgerichtet sind, und wobei der Schritt zum
Lokalisieren folgende Schritte für jede Reihe von Spalten umfaßt:
Auswählen (701) eines zusammenhängenden minimalen Teilsatzes aus der Reihe
von Spalten, so daß der zusammenhängende minimale Teilsatz aus der Reihe von Spalten
Zählungen aufweist, die allgemein nicht größer als diejenigen der Reihe von Spalten sind,
die nicht innerhalb des zusammenhängenden minimalen Teilsatzes der Reihe von Spalten
enthalten sind,
Bestimmen (702), ob null, einer oder zwei der zwei Zählwerte, die unmittelbar zu dem
zusammenhängenden minimalen Teilsatz aus der Reihe von Spalten benachbart sind,
Ausrichtungspunkte innerhalb der Eingabedaten sind,
wenn eine der Spalten, die unmittelbar zu dem zusammenhängenden minimalen
Teilsatz aus der Reihe von Spalten benachbart sind, ein Ausrichtungspunkt ist, Lokalisieren
des Feldumbruchs (703) zwischen der Spalte, die der Ausrichtungspunkt ist, und dem
zusammenhängenden minimalen Teilsatz aus der Reihe von Spalten, und
wenn null oder zwei der Zählwerte, die unmittelbar zu dem zusammenhängenden
minimalen Teilsatz aus der Reihe von Spalten benachbart sind, Ausrichtungspunkte sind,
Lokalisieren des Feldumbruchs (704) innerhalb des zusammenhängenden minimalen
Teilsatzes aus der Reihe von Spalten.
7. Verfahren nach Anspruch 6, wobei der Schritt zum Lokalisieren des Feldumbruchs
(704) innerhalb des zusammenhängenden minimalen Teilsatzes aus der Reihe von Spalten,
wenn null oder zwei der Zählwerte, die unmittelbar zu dem zusammenhängenden minimalen
Teilsatz aus der Reihe von Spalten benachbart sind, Ausrichtungspunkte sind, den
Feldumbruch so nahe wie möglich in der Mitte des zusammenhängenden minimalen Teilsatzes aus
der Reihe von Spalten lokalisiert.
8. Verfahren nach Anspruch 6, wobei der Schritt zum Bestimmen, ob null, einer oder
zwei der zwei Zählwerte, die unmittelbar zu dem zusammenhängenden minimalen Teilsatz
aus der Reihe von Spalten benachbart sind, Ausrichtungspunkte sind, folgende Schritte
umfaßt:
Bestimmen, ob der Zählwert für die Spalte unmittelbar vor der ersten Spalte des
zusammenhängenden minimalen Teilsatzes aus der Reihe von Spalten einen Ausrichtung-
Schwellwert übersteigt, und
Bestimmen, ob der Zählwert für die Spalte unmittelbar nach der letzen Spalte des
zusammenhängenden minimalen Teilsatzes aus der Reihe von Spalten den Ausrichtung-
Schwellwert übersteigt.
9. Verfahren nach Anspruch 4, wobei die Eingabedaten Daten enthalten, die in einer
von einer vordefinierten Vielzahl von Datenformaten organisiert sind, wobei eine Vielzahl der
Datenformate die Organisation der Daten unter Verwendung von nicht-wesentlichen Zeichen
spezifiziert, wobei das Verfahren nach dem Schritt zum Lokalisieren eines Feldumbruchs
weiterhin folgende Schritte umfaßt:
Erkennen, daß ein Feldumbruch (903) innerhalb eines Feldes lokalisiert wurde, das
Daten umfaßt, die in einem Datenformat organisiert sind, das die Organisation der Daten
unter Verwendung von nicht-wesentlichen Zeichen spezifiziert, und
Entfernen des in dem Erkennungsschritt erkannten Feldumbruchs.
10. Verfahren nach Anspruch 1, wobei die ausgewählten Datenzeilen geordnete Spalten
umfassen, welche jeweils ein Zeichen enthalten, das entweder nicht-wesentlich oder
wesentlich sein kann, und wobei der Schritt zum Identifizieren von Feldumbrüchen innerhalb der
Eingabedaten durch eine Analyse der ausgewählten Datenzeilen weiterhin folgende Schritte
umfaßt:
für jede Spalte, Zählen der Anzahl von ausgewählten Zeilen, in denen ein
wesentliches Zeichen in sowohl der Spalte wie in einer benachbarten Spalte ist, und
Identifizieren von Feldumbrüchen in den Eingabedaten auf der Basis der durch den
Zählschritt erzeugten Zählwerte.
11. Verfahren nach Anspruch 1, wobei die Vielzahl von Datenzeilen geordnet ist, so daß
eine der Datenzeilen die oberste Datenzeile ist, wobei der Auswahlschritt einen Schritt zum
Auslassen einer zusammenhängenden Gruppe von einer oder mehreren Datenzeilen
einschließlich der obersten Datenzeile umfaßt.
12. Verfahren nach Anspruch 1, wobei die Datenzeilen Überschriftzeilen umfassen, die
Überschriftinformation enthalten, um den Inhalt von anderen Datenzeilen zu beschreiben,
und wobei der Auswahlschritt einen Schritt zum Auslassen der Überschriftzeilen umfaßt.
13. Verfahren nach Anspruch 1, wobei der Schritt zum Zählen der Anzahl von
wesentlichen Zeichen in jeder Spalte nur Zeichen zählt, die in einer ersten vordefinierten Gruppe
von Zeichen enthalten sind,
und weiterhin folgende Schritte umfaßt:
Zählen der Anzahl von wesentlichen Zeichen, die in einer zweiten vordefinierten
Gruppe von Zeichen in jeder Spalte der ausgewählten Textzeilen enthalten sind, so daß ein
Zählwert für eine zweite Zeichengruppe für jede Spalte erzeugt wird und so daß die
Zähl
werte für die zweite Zeichengruppe in Übereinstimmung mit der Ordnung der Spalten
geordnet werden, und
Identifizieren von Feldern innerhalb der Eingabedaten auf der Basis der Zählwerte für
die erste Zeichengruppe und der Zählwerte für die zweite Zeichengruppe, die durch die
Zählschritte erzeugt werden.
14. Verfahren nach Anspruch 13, wobei die erste vordefinierte Gruppe von Zeichen und
die zweite vordefinierte Gruppe von Zeichen einander ausschließen und wobei der Schritt
zum Zählen der Anzahl von wesentlichen Zeichen, die in einer ersten vordefinierten Gruppe
von Zeichen in jeder Spalte der ausgewählten Textzeilen enthalten sind, nur Zeichen zählt,
die nicht durch den Schritt zum Zählen der Anzahl von wesentlichen Zeichen, die in einer
zweiten vordefinierten Gruppe von Zeichen in jeder Spalte der ausgewählten Textzeilen
enthalten sind, gezählt werden.
15. Verfahren nach Anspruch 14, wobei einige Zeichen Buchstaben sind und wobei die
erste Gruppe von Zeichen Buchstaben enthält und die zweite vordefinierte Gruppe von
Zeichen nicht-Buchstaben enthält, und wobei der Schritt zum Zählen der Anzahl von
wesentlichen Zeichen, die in einer zweiten vordefinierten Gruppe von Zeichen in jeder Spalte der
ausgewählten Textzeilen enthalten sind, nur nicht-Buchstaben zählt.
16. Verfahren nach Anspruch 14, wobei einige Zeichen Ziffern sind und wobei die erste
vordefinierte Gruppe von Zeichen Ziffern enthält und die zweite vordefinierte Gruppe von
Zeichen nicht-Ziffern enthält, und wobei der Schritt zum Zählen der Anzahl von wesentlichen
Zeichen, die in einer zweiten vordefinierten Gruppe von Zeichen in jeder Spalte der
ausgewählten Textzeilen enthalten sind, nur nicht-Ziffern zählt.
17. Verfahren nach Anspruch 1, das weiterhin folgenden Schritt umfaßt:
Manipulieren der im Identifizierungsschritt positionierten Feldumbrüche in Reaktion
auf das Empfangen einer Eingabe von einem Benutzer.
18. Verfahren nach Anspruch 17, wobei der Manipulierungsschritt folgende Schritte
umfaßt:
Empfangen eines Neupositionierungsbefehls von dem Benutzer, und
Neupositionieren eines durch den Identifizierungsschritt identifizierten Feldumbruchs
in Reaktion auf das Empfangen des Neupositionierungsbefehls von dem Benutzer.
19. Verfahren nach Anspruch 18, wobei der Schritt zum Empfangen eines
Neupositionierungsbefehls von dem Benutzer einen Schritt zum Empfangen einer Angabe dazu,
welcher Feldumbruch neu positioniert werden soll, und einer Angabe zu der Position, zu welcher
der Feldumbruch verschoben werden soll, umfaßt und wobei der Neupositionierungsschritt
den Feldumbruch in Übereinstimmung mit den Angaben verschiebt.
20. Verfahren nach Anspruch 17, wobei der Manipulierungsschritt folgende Schritte
umfaßt:
Empfangen eines Löschbefehls von dem Benutzer, und
Löschen eines in dem Identifizierungsschritt identifizierten Feldumbruchs in Reaktion
auf das Empfangen des Löschbefehls von dem Benutzer.
21. Verfahren nach Anspruch 20, wobei der Schritt zum Empfangen eines Löschbefehls
von dem Benutzer einen Schritt zum Empfangen einer Angabe dazu umfaßt, welcher
Feldumbruch gelöscht werden soll, und wobei der Löschbefehl den Feldumbruch in
Übereinstimmung mit der Angabe löscht.
22. Verfahren nach Anspruch 17, wobei der Manipulierungsschritt folgende Schritte
umfaßt:
Empfangen eines Hinzufügungsbefehls von dem Benutzer, und
Hinzufügen eines Feldumbruchs zu den in dem Identifizierungsschritt identifizierten
Feldumbrüchen in Reaktion auf das Empfangen eines Hinzufügungsbefehls von dem
Benutzer.
23. Verfahren nach Anspruch 22, wobei der Schritt zum Empfangen eines
Hinzufügungsbefehls von dem Benutzer einen Schritt zum Empfangen einer Angabe zu der Position
umfaßt, an der ein Feldumbruch eingefügt werden soll, und wobei der Hinzufügungsschritt den
Feldumbruch an der durch die Angabe angegebenen Position einfügt.
24. Computerbasierte Feldumbruch-Lokalisierungsvorrichtung (401) zum Identifizieren
von Feldumbrüchen innerhalb von Eingabedaten, wobei die Eingabedaten Zeilen aus
Feldern umfassen, wobei jedes Feld Zeichen umfaßt, wobei die Zeilen der Eingabedaten
logisch in Spalten für jeweils ein Zeichen unterteilt sind, wobei jedes Zeichen entweder
wesentlich oder nicht-wesentlich ist, wobei die wesentlichen Zeichen die in Datenfeldern
gestatteten Zeichen sind, und wobei die Computerbasierte
Feldumbruch-Lokalisierungsvorrichtung umfaßt:
eine Empfangseinrichtung (404) zum Empfangen der Eingabedaten,
einen Auswahleinrichtung zum Auswählen einer Vielzahl von Zeilen aus den
empfangenen Eingabedaten, und
eine Analyseeinrichtung (402) zum Identifizieren der Felder in den Eingabedaten auf
der Basis der ausgewählten Zeilen, selbst gekennzeichnet durch einen Zähler zum
Bestimmen der Anzahl von wesentlichen Zeichen in jeder Spalte der ausgewählten Zeilen aus den
Eingabedaten,
einen Zählerspeicher (403) zum Speichern der Anzahl von wesentlichen Zeichen in
jeder Spalte der ausgewählten Zeilen der Eingabedaten, und
eine Feldumbruch-Positionierungseinrichtung (402) zum Positionieren eines
Feldumbruchs an einer Spalte in Nachbarschaft zu einer Spalte mit einer relativ minimalen Anzahl
von wesentlichen Zeichen in bezug auf die umgebenden Spalten.
25. Feldumbruch-Lokalisierungsvorrichtung nach Anspruch 24, wobei die Feldumbruch-
Positionierungseinrichtung einen Datenausrichtungsdetektor umfaßt, um festzustellen, ob
Daten in Spalten neben der Spalte mit der kleinsten Anzahl von wesentlichen Zeichen mit
den Spalten neben der Spalte mit der kleinsten Anzahl von nicht-wesentlichen Zeichen
ausgerichtet sind, und wobei die Feldumbruch-Positionierungseinrichtung den Feldumbruch auf
der Basis der durch den Detektor erhaltenen Ergebnisse positioniert.
26. Feldumbruch-Lokalisierungsvorrichtung nach Anspruch 24, wobei eine oder mehrere
Datenzeilen Überschriftinformation enthalten, um Teile der restlichen Datenzeilen zu
identifizieren, und wobei die Auswahleinrichtung eine Unterscheidungseinrichtung umfaßt, um
eine oder mehrere Datenzeilen, die Überschriftinformation enthalten, festzustellen und
auszulassen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/122,891 US5566068A (en) | 1993-09-15 | 1993-09-15 | Method and system for locating field breaks within input data |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69425208D1 DE69425208D1 (de) | 2000-08-17 |
DE69425208T2 true DE69425208T2 (de) | 2000-11-23 |
Family
ID=22405451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69425208T Expired - Lifetime DE69425208T2 (de) | 1993-09-15 | 1994-09-08 | Verfahren und System zum Lokalisieren der Feldstruktur von Eingabedaten |
Country Status (5)
Country | Link |
---|---|
US (1) | US5566068A (de) |
EP (1) | EP0644493B1 (de) |
JP (1) | JPH07168820A (de) |
CA (1) | CA2130033C (de) |
DE (1) | DE69425208T2 (de) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5987245A (en) | 1996-07-01 | 1999-11-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework |
US6038590A (en) | 1996-07-01 | 2000-03-14 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system |
US6424991B1 (en) | 1996-07-01 | 2002-07-23 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server communication framework |
US6272555B1 (en) | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system |
US6304893B1 (en) | 1996-07-01 | 2001-10-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system |
US5848246A (en) | 1996-07-01 | 1998-12-08 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system |
US6434598B1 (en) | 1996-07-01 | 2002-08-13 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system |
US6266709B1 (en) | 1996-07-01 | 2001-07-24 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server failure reporting process |
US5999972A (en) | 1996-07-01 | 1999-12-07 | Sun Microsystems, Inc. | System, method and article of manufacture for a distributed computer system framework |
JP3886661B2 (ja) * | 1999-03-30 | 2007-02-28 | 富士通株式会社 | テキスト編集システム |
JP2002202987A (ja) * | 2000-11-02 | 2002-07-19 | At System:Kk | データ管理方法 |
US20040193520A1 (en) * | 2003-03-27 | 2004-09-30 | Lacomb Christina | Automated understanding and decomposition of table-structured electronic documents |
JP4759378B2 (ja) * | 2004-12-17 | 2011-08-31 | キヤノン株式会社 | 情報処理装置、情報処理方法、制御プログラム |
JP4476318B2 (ja) * | 2007-10-31 | 2010-06-09 | 富士通株式会社 | 論理構造認識プログラム、論理構造認識装置、および論理構造認識方法 |
CN102929844B (zh) * | 2012-10-23 | 2015-07-29 | 珠海金山办公软件有限公司 | 电子表格数值存储方式的选择方法及系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4225943A (en) * | 1979-01-11 | 1980-09-30 | International Business Machines Corporation | Display system for horizontally segmenting text |
US4686649A (en) * | 1981-05-29 | 1987-08-11 | International Business Machines Corporation | Word processor with alternative formatted and unformatted display modes |
US4484826A (en) * | 1981-09-24 | 1984-11-27 | International Business Machines Corporation | Automatic intertext column spacing |
US4604710A (en) * | 1981-10-09 | 1986-08-05 | International Business Machines Corporation | System for converting data processing information to text processing format and vice versa |
US4491933A (en) * | 1982-03-18 | 1985-01-01 | Wordtronix Inc. | Word processor |
US4559614A (en) * | 1983-07-05 | 1985-12-17 | International Business Machines Corporation | Interactive code format transform for communicating data between incompatible information processing systems |
US5055998A (en) * | 1984-12-10 | 1991-10-08 | Wang Laboratories, Inc. | Intermediate spreadsheet structure |
DE3781892T2 (de) * | 1987-07-08 | 1993-04-08 | Ibm | Datenverarbeitungsanlage zur automatischen veraenderung von datenformaten. |
US5175810A (en) * | 1989-06-19 | 1992-12-29 | Digital Equipment Corporation | Tabular data format |
US5333252A (en) * | 1990-04-05 | 1994-07-26 | Claris Corporation | Interface for arranging order of fields |
-
1993
- 1993-09-15 US US08/122,891 patent/US5566068A/en not_active Expired - Lifetime
-
1994
- 1994-08-12 CA CA002130033A patent/CA2130033C/en not_active Expired - Lifetime
- 1994-09-08 EP EP94114148A patent/EP0644493B1/de not_active Expired - Lifetime
- 1994-09-08 DE DE69425208T patent/DE69425208T2/de not_active Expired - Lifetime
- 1994-09-12 JP JP6216900A patent/JPH07168820A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0644493A3 (de) | 1995-11-02 |
DE69425208D1 (de) | 2000-08-17 |
EP0644493A2 (de) | 1995-03-22 |
CA2130033A1 (en) | 1995-03-16 |
EP0644493B1 (de) | 2000-07-12 |
CA2130033C (en) | 2001-04-10 |
US5566068A (en) | 1996-10-15 |
JPH07168820A (ja) | 1995-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69426714T2 (de) | Dokumentverarbeitungsverfahren und Gerät | |
DE69425208T2 (de) | Verfahren und System zum Lokalisieren der Feldstruktur von Eingabedaten | |
DE69428868T2 (de) | Verfahren und System zum Aufzeigen von Alternativen zur Auswahl durch Gebrauch von adaptiven Lernen | |
DE69330993T2 (de) | Verfahren zur Komprimierung von Indizen für komplette Texte | |
DE69426615T2 (de) | Vorrichtung und Verfahren zum Verarbeiten von Dokumenten | |
DE68927216T2 (de) | System zur verwaltung von hierarchischen informationen in einem digitalen datenverarbeitungssystem | |
DE3852384T2 (de) | Adaptives Hilfs-/Dialogsystem. | |
DE69811066T2 (de) | Datenzusammenfassungsgerät. | |
DE69425645T2 (de) | Vorrichtung zum Verarbeiten von Dokumenten und Verfahren dafür | |
DE69433165T2 (de) | Assoziatives textsuch- und wiederauffindungssystem | |
DE69525401T2 (de) | Verfahren und Gerät zur Identifikation von Wörtern, die in einem portablen elektronischen Dokument beschrieben sind | |
DE69027188T2 (de) | Verfahren und Gerät zur Dokumentformatierung | |
DE69026885T2 (de) | Dynamische Selektion von Datenformaten für rekursiv geschachtelte logische Elemente | |
DE69232110T2 (de) | Darstellungssystem von Geschichtsinhalt für einen Informationsprozessor | |
DE3781892T2 (de) | Datenverarbeitungsanlage zur automatischen veraenderung von datenformaten. | |
DE19627472A1 (de) | Datenbanksystem | |
DE69230123T2 (de) | Aufzeichnungsmedium und Informationslesevorrichtung | |
EP1975821A2 (de) | Verfahren zur digitalen Speicherung von Daten auf einem Datenspeicher mit beschränktem verfügbarem Speicherplatz | |
DE19706512A1 (de) | Echtzeit-Ereignisanordnung in einem elektronischen Ablaufdiagramm | |
DE69609887T2 (de) | Hypertextsystem und Anzeigeverfahren | |
DE69719641T2 (de) | Ein Verfahren, um Informationen auf Bildschirmgeräten in verschiedenen Grössen zu präsentieren | |
DE68913373T2 (de) | Verfahren zur gleichzeitigen Dateneingabe in überlappende Fenster. | |
DE102012025350A1 (de) | Verarbeitungn eines elektronischen Dokuments | |
DE60217729T2 (de) | Verfahren zum erkennen eines elektronischen geräts in einem mehrfachsteuersystem | |
EP2601594A1 (de) | Verfahren und vorrichtung zur automatischen verarbeitung von daten in einem zellen-format |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |