Einzelnen Beitrag anzeigen

Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#4

Re: Textdatei Zeichen in bestimmter Zeile löschen

  Alt 27. Apr 2006, 09:52
Ich will das Ganze File nicht in einen String laden, da stehen ca. 250.000 Datensätze drinnen und das werden ständig mehr. (Einzelpespräche von Telefon Kunden).


So erstelle ich das Ding.
Delphi-Quellcode:
procedure tuser.ImportFileEinlesen;
var
x,y,flag,counter:integer;
Anlagennummer,Dataline,Zone,O1Calldate,O1Destnumber,O1Destdesciption,O1CallStartTime:string;
O1CallDuration,O1Callprice,Importfilename,GZFZ:string;
DurationStringHHHH,DurationStringMM,DurationStringSS,DurationStringSumme:String;
CallStartHH,CallStartMM,CallStartSS,CallDateDD,CallDateMM,CallDateYY:string;
DurationIntHHHH,DurationIntMM,DurationIntSS:integer;
Duration,Summe,Unitpreis,DurationIntSumme:Double;
CallStartTime,FreizeitAnfang,FreizeitEnde,GeschaeftszeitAnfang,GeschaeftszeitEnde:TTime;
aFile:TextFile;
begin
 AssignFile(aFile,ExtractFilePath(Application.ExeName)+'\Dumpfile\dumpfile.sql');
 Rewrite(aFile);
 Writeln(aFile,DumpHeader.Text);
 Writeln(aFile,'LOCK TABLES callstemp WRITE;');
 Writeln(aFile,'INSERT INTO callstemp VALUES ') ;

 counter:=0;

for x := 0 to fimoprtStringlist.Count-1 do
  begin
    inc(counter);
    fmMain.Gauge1.MaxValue:=fimoprtStringlist.Count;
    fmMain.Gauge1.Progress:=x;
    application.ProcessMessages;
    ..
    //Berechnung der Datenfelder (ca 4 Seiten Code. den hab ich mal nicht gepostet)
    ..

    if (counter < 100) then
    begin
    writeln(aFile,'(null,"'+Anlagennummer+'","'+Zone+'","'+O1Destdesciption+'","'+FormatDateTime('YYYY-MM-DD',StrToDate(CallDateDD+'.'+CallDateMM+'.'+CallDateYY))+'","'+O1Destnumber+'","'+TimeToStr(CallStartTime)+'","'+BeistrichAufPunkt(FloatToStr(DurationIntSumme))+'","'+BeistrichAufPunkt(FloatToStr(Summe))+'","'+GZFZ+'"),');
    end
    else
    begin
    counter:=0;
    writeln(aFile,'(null,"'+Anlagennummer+'","'+Zone+'","'+O1Destdesciption+'","'+FormatDateTime('YYYY-MM-DD',StrToDate(CallDateDD+'.'+CallDateMM+'.'+CallDateYY))+'","'+O1Destnumber+'","'+TimeToStr(CallStartTime)+'","'+BeistrichAufPunkt(FloatToStr(DurationIntSumme))+'","'+BeistrichAufPunkt(FloatToStr(Summe))+'","'+GZFZ+'");');
    writeln(aFile,'INSERT INTO callstemp VALUES ') ;

    end;
end;
Das Problem ist das das Importfile, welches ich auf fimoprtStringlist lade , hat nicht in jeder Zeile einen Datensatz, sonst könnte ich ja den fimoprtStringlist.count -2 benutzen.
Sieht ca so aus das File welches ich importiere

Code:
A1Priority Telecom GmbH        Erdbergstraße 52-60           A-1030 Wien                  
A20800 252 290                  000000000                 [email]businessinfo@priority.at[/email]    
A32015100696920222PRIORITY TELECOM GMBH        
B1ÖLREINIGUNG GMBH                                              
B2AUGASSE 13                      70211 SIGENDORF                
B3                                                               
B48040187200                                                     
B58040187200                      8040187200                     
B6                                                               
B7OESTERR.POSTSPARK.           6000000075659723                                           
C18104512011029662720051104200511182005100120051031N2000000COY
D100000000000+00000000000+00000000000+00000000000+
F10268720300   BKF Wholesale 710000139140000000209+0000000000+0000000000+0000000209+
I1Zahlung für Kaution               0000036336+
I1Anpassung Kaution                 0000036336-
I1Übertrag auf Hauptkto. 8104406-01/10000036336+
I1Übertrag auf Hauptkto. 8104406-01/10000000209-
J10000000000+00200000000000+0000000000+
K10268720300   BKF Wholesale
N1on-Net            
O10510051947 1960           Priority Telecom        08184800000121               0000000000+
O11710001945 4800           Priority Telecom        11343200000018               0000000000+
O117100501945 4800          Priority Telecom        11352500000108               0000000000+
O12510050967 6937           Priority Telecom        11025600000005               0000000000+
O12510050967 6937           Priority Telecom        11095100000529               0000000000+
P1GESCHÄFTSZ00000500000821000000000000000+
N1Inland
O101100501 6162997           Wien                    12465700000037               0000000001+
O103100501 313263366         Wien                    13570900000027               0000000001+
O110100501 601223560         Wien            

..
..
Auf Grund der Variablen am Satzanfang werte ich die Zeilen aus.

lg
Bundy
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat