Frage : Datenreinigungprogramm in VB optimieren müssen

Gutenmorgen,

I haben eine Rohr abgegrenzte Akte 20MB, die vom Fortschritt 9.1e exportiert.  Er enthält „als Textnähere bestimmungen.  Mein Problem ist, dass einige Textfelder Linie Brüche (CRLF) enthalten, die auch das Satzende marker.

I schrieb den angebrachten Code, um Anführungszeichen heraus abzustreifen und das CRLFs dann zu entfernen ist, die auf den Textgebieten eingebettet.  Ich bin froh, den Code works.

HOWEVER zu sagen, scheint es, dass es ungefähr 10 Stunden dauert, um die Akte innen zu lesen, einige unkown Zeit zu verarbeiten und ausweichen andere 10 Stunden, zum der modernisierten Akte dann vermutlich zu schreiben en.  

So, das ich schaue, um den Prozess durch zu optimieren oh, sagen einen Tag oder zwei.  Ich gesucht nach besseren Methoden, damit wie lesen und schreiben aber konnte nicht darstellen, es out.

The zweites Akte ein Segment 20KB der darstellenden Daten ist, dass die unechte CRLFs.

Any Hilfe sehr geschätzt.  Ich bin nicht über, was die Lösung ist, ich kann den Code heraus werfen stolz.  Wenn es Weise gibt, vom Fortschritt ohne das zusätzliche CRLFs zu exportieren oder eine bessere Sprache (obgleich VB die einzige Sache ist, die wir angebracht) oder ein besserer Algorithmus eher als using eine Reihe, ich open.

Thank Sie im Voraus für Ihre Unterstützung bin.


1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
Sub ReadChars ()

Schwache strCharacters (20000000) als Schnur * 1
Schwaches intCharcount, intMaxChars als lang

Schwaches booIsQuote, wie Boolesch
I, J verdunkeln als lang

objFSO = CreateObject („Scripting.FileSystemObject“) einstellen
Objfile einstellen = objFSO.opentextfile („x:\TCB\Purchasing\08 - 09 \ ERP \ Datenumsetzung \ o_bp-inspect.txt“, 1)


'Eingangs-Akte
intCharcount = 0
strSentence = ""
Bis objfile.AtEndOfStream tun
    strCharacters (intCharcount) = objfile.read (1)

    intCharcount = intCharcount + 1

Schleife

objfile. Abschluss



'Anführungszeichen in den Textbereichen entfernen, dort sind einige unechte Fälle
I = 0
strPattern = „|“ U. Chr$ (34) u. Chr$ (34) u. „|“
Bis tun i = intCharcount - 1

    
    Wenn strCharacters (i) u. strCharacters (i + 1) u. strCharacters (i + 2) u. strCharacters (i + 3) <> strPattern dann Goto- Skip1
      strCharacters (i + 1) = Chr$ (0)
      strCharacters (i + 2) = Chr$ (0)

      I = i + 2
Skip1:
    I = i + 1

Schleife



'CR/LF zwischen Anführungsstrichen entfernen
I = 0
J = 0


Bis tun i = intCharcount - 1

   Wenn strCharacters (i) = Chr$ (34) dann
    booIsQuote = nicht booIsQuote
    Goto- Zeilensprung
    Beenden wenn
   Wenn (strCharacters (i) = Chr$(10) oder strCharacters (i) = Chr$(13)) und booIsQuote dann
    strCharacters (i) = „„
    Beenden wenn
    
Zeilensprung:
   I = i + 1
   
Schleife


'Reihe zur Akte schreiben

Outfso = CreateObject („Scripting.FileSystemObject“) einstellen
Outfile einstellen = outfso.createtextfile („x:\TCB\Purchasing\08 - 09 \ ERP \ die Datenumsetzung \ o_bp-inspect1.txt“, zutreffend)

I = 0
Bis tun i = intCharcount - 1

	outfile.write (strCharacters (i))
	I = i + 1

Schleife


outfile. Abschluss

Enden-Unterseeboot
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
0|? |ja|0|"
„|""|? |? |0|0|""|""|0|0|0|""|""|0|0|""|0|0|0|0|""|""|""|? |""
0|? |ja|0|""|""|? |? |0|0|""|""|0|0|0|""|""|0|0|""|0|0|0|0|""|""|""|? |""
0|? |ja|0|""|""|? |? |0|0|""|""|0|0|0|""|""|0|0|""|0|0|0|0|""|""|""|? |""
0|? |ja|0|""|""|? |? |0|0|""|""|0|0|0|""|""|0|0|""|0|0|0|0|""|""|""|? |""
0|? |ja|0|""|""|? |? |0|0|""|""|0|0|0|""|""|0|0|""|0|0|0|0|""|""|""|? |""
0|? |ja|0|""|""|? |? |0|0|""|""|0|0|0|""|""|0|0|""|0|0|0|0|""|""|""|? |""
0|10/31/06|ja|57.25|" ENGEL RIVAS "|""|? |? |0|0|""|" 140 "|0|20060001|1|" N "|""|0|0|""|0|0|0|0|""|""|""|? |""
0|11/16/06|nein|57.25|" ENGEL RIVAS "|" VERFEHLENRISET POP AN DER SEITE DER UNTEREN SCHIENE TERRASSE 6 IM "" O.C "|? |? |0|0|""|" 140 "|0|20060002|1|" N "|""|0|1|""|0|0|0|0|""|""|""|? |""
0|11/20/06|ja|57.25|" AURELIO RAMOS "|""|? |? |0|0|""|" 140 "|0|20060002|2|" N "|""|0|0|""|0|0|0|0|""|""|""|? |""
0|10/26/06|ja|57.25|" ENGEL RIVAS "|""|? |? |0|0|""|" 140 "|0|20060003|1|" N "|""|0|0|""|0|0|0|0|""|""|""|? |""
0|""|0|0|0|0|""|""|""|? |""
0|12/08/06|nein|57.25|" AURELIO RAMOS "|" NOTWENDIGKEITS-ELEKTRISCHE GRUNDkontrolle
NOTWENDIGKEITS-NOC "|? |? |0|0|""|" 140 "|0|20060021|1|" N "|""|0|7|""|0|0|0|0|""|""|""|? |""
0|03/07/07|nein|57.25|" FELIX POUSA "|" NICHT IN ÜBEREINSTIMMUNG MIT NEUER BLICK-KUNST 680 "|? |? |0|0|""|" 601 "|0|20060021|1|" N "|""|0|4|""|0|0|0|0|""|""|""|? |""
0|03/08/07|nein|57.25|" PETER WAGONER "|" KEINS HAUPT "|? |? |0|0|""|" 140 "|0|20060021|2|" N "|""|0|5|""|0|0|0|0|""|""|""|? |""
0|03/19/07|nein|57.25|" FELIX POUSA "|" 1. NICHT IN ÜBEREINSTIMMUNG MIT NEC 2005 
90.2A
110.3B
300.5

2. LOHN RE-FEE "|? |? |0|0|""|" 601 "|0|20060021|2|" N "|""|0|2|""|0|0|0|0|""|""|""|? |""
0|02/21/08|ja|57.25|" RAUL RODRIGUEZ "|" ERLAUBNIS #2007-3249 FÜR SEHEN, SCHLUSS ZU WÄHLEN "|? |? |0|0|""|" 140 "|0|20060021|3|" N "|""|0|6|""|0|0|0|0|""|""|""|? |""
0|01/05/08|ja|57.25|" CARLOS BERTOT "|""|? |? |0|0|""|" 601 "|0|20060021|3|" N "|""|0|3|""|0|0|0|0|""|""|""|? |""
0|01/11/07|ja|57.25|" HENRY WILLIS "|""|? |? |0|0|""|" 039 "|0|20060022|1|" N "|""|0|0|""|0|0|0|0|""|""|""|? |""
0|11/21/06|nein|57.25|" ENGEL RIVAS "|" KEINE ADRESSE FAND "|? |? |0|0|""|" 140 "|0|20060023|1|" N "|""|0|1|""|0|0|0|0|""|""|""|? |""
0|11/22/06|ja|57.25|" ENGEL RIVAS "|""|? |? |0|0|""|" 140 "|0|20060023|2|" N "|""|0|0|""|0|0|0|0|""|""|""|? |""
0|11/15/06|ja|57.25|" AURELIO RAMOS "|""|? |? |0|0|""|" 140 "|0|20060024|1|" N "|""|0|1|""|0|0|0|0|""|""|""|? |""
0|11/09/06|ja|57.25|" ENGEL RIVAS "|""|? |? |0|0|""|" 001 "|0|20060024|1|" N "|""|0|0|""|0|0|0|0|""|""|""|? |""
0|11/20/06|ja|57.25|" AURELIO RAMOS "|""|? |? |0|0|""|" 001 "|0|20060025|1|" N "|""|0|1|""|0|0|0|0|""|""|""|? |""
0|11/27/06|ja|57.25|" ENGEL RIVAS "|""|? |? |0|0|""|" 140 "|0|20060025|1|" N "|""|0|0|""|0|0|0|0|""|""|""|? |""
0|? |nein|57.5|""|""|? |? |0|0|""|" 640 "|0|20060026|1|" N "|""|0|1|""|0|0|0|0|""|""|""|? |""
0|11/15/06|nein|57.25|" AURELIO RAMOS "|" KEINE ERLAUBNIS "|? |? |0|0|""|" 001 "|0|20060027|1|" Ich "|""|0|3|""|0|0|0|0|""|""|""|? |""
0|11/16/06|ja|57.25|" AURELIO RAMOS "|""|? |? |0|0|""|" 001 "|0|20060027|2|" N "|""|0|0|""|0|0|0|0|""|""|""|? |""
0|11/22/06|nein|57.25|" AURELIO RAMOS "|" KEINE ERLAUBNIS "|? |? |0|0|""|" 140 "|0|20060027|1|" Ich "|""|0|2|""|0|0|0|0|""|""|""|? |""
0|11/28/06|ja|57.25|" ENGEL RIVAS "|""|? |? |0|0|""|" 140 "|0|20060027|2|" N "|""|0|1|""|0|0|0|0|""|""|""|? |""
0|? |nein|57.5|""|""|? |? |0|0|""|" 640 "|0|20060028|1|" N "|""|0|1|""|0|0|0|0|""|""|""|? |""
0|11/16/06|nein|57.25|" ENGEL RIVAS "|" LOSE ANKER
HAUSTÜR-SPITZENverkleidung ÜBEREINSTIMMT NICHT MIT MINIMALEM RAND-ABSTAND NIMALEM
FEHLENDE WIND-LAST CALC
HINTERES AKKORDEON KONNTE MAX-ÜBERSPANNUNG ÜBERSTEIGEN "|? |? |0|0|""|" 140 "|0|20060029|1|" N "|""|0|1|""|0|0|0|0|""|""|""|? |""
0|01/17/07|ja|57.25|" HENRY WILLIS "|""|? |? |0|0|""|" 140 "|0|20060029|2|" N "|""|0|0|""|0|0|0|0|""|""|""|? |""
0|11/28/06|ja|57.25|" ENGEL RIVAS "|""|? |? |0|0|""|" 140 "|0|20060030|1|" N "|""|0|1|""|0|0|0|0|""|""|""|? |""
0|11/20/06|ja|57.25|" ENGEL RIVAS "|""|? |? |0|0|""|" 140 "|0|20060031|1|" N "|""|0|0|""|0|0|0|0|""|""|""|? |""
0|11/03/06|ja|57.25|" AURELIO RAMOS "|""|? |? |0|0|""|" 140 "|0|20060032|1|" N "|""|0|2|""|0|0|0|0|""|""|""|? |""
0|11/14/06|ja|57.25|" ENGEL RIVAS "|""|? |? |0|0|""|" 001 "|0|20060033|1|" N "|""|0|2|""|0|0|0|0|""|""|""|? |""
0|12/21/06|nein|57.25|" PETER WAGONER "|" EINSTURZ IN DEN LÖCHERN, ENDEN-BEHANDLUNG-@ HAUS UNVOLLSTÄNDIG „|? |? |0|0|""|" 001 "|0|20060050|1|" N "|""|0|2|""|0|0|0|0|""|""|""|? |""
0|01/09/07|ja|57.25|" PETER WAGONER "|""|? |? |0|0|""|" 140 "|0|20060050|1|" N "|""|0|3|""|0|0|0|0|""|""|""|? |""
0|11/28/06|ja|57.25|" Engel Rivas "|""|? |? |0|0|""|" 001 "|0|20060051|1|" N "|""|0|3|""|0|0|0|0|""|""|""|? |""
0|12/06/06|nein|57.25|" Aurelio Ramos "|" keine Erlaubnis
„|? |? |0|0|""|" 140 "|0|20060051|1|" N "|""|0|2|""|0|0|0|0|""|""|""|? |""
0|12/11/06|nein|57.25|" Engel Rivas "|""|? |? |0|0|""|" 140 "|0|20060051|2|" N "|""|0|0|""|0|0|0|0|""|""|""|? |""
0|12/13/06|ja|57.25|" Aurelio Ramos "|""|? |? |0|0|""|" 140 "|0|20060051|3|" N "|""|0|1|""|0|0|0|0|""|""|""|? |""
0|11/30/06|nein|57.25|" Engel rivas "|" keine Adressenzahl bekannt gab nntgab. kein durchlöcherter Kontrollenpfosten sperrte mehr als 4 ' 0 "" o.c. „|? |? |0|0|""|" 140 "|0|20060052|1|" N "|""|0|4|""|0|0|0|0|""|""|""|? |""
0|12/05/06|ja|57.25|" Engel rivas "|""|? |? |0|0|""|" 001 "|0|20060052|1|" N "|""|0|1|""|0|0|0|0|""|""|""|? |""
0|12/07/06|ja|57.25|" Engel rivas "|""|? |? |0|0|""|" 140 "|0|20060052|2|" N "|""|0|2|""|0|0|0|0|""|""|""|? |""
0|01/26/07|ja|57.25|" Peter Wagoner "|""|? |? |0|0|""|" 001 "|0|20060052|2|" N "|""|0|0|""|0|0|0|0|""|""|""|? |""

Antwort : Datenreinigungprogramm in VB optimieren müssen

Ich versucht nicht, aber google aufkam mit viel von Wahlen am.

Oberseite der Liste: http://www.soft32.com/download_194850.html

Freeware schaut einfach und wirkungsvoll.

L
Weitere Lösungen  
 
programming4us programming4us