AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Append_problem mit textfiles

Ein Thema von homerunjack22 · begonnen am 27. Feb 2009 · letzter Beitrag vom 27. Feb 2009
Antwort Antwort
homerunjack22

Registriert seit: 27. Feb 2009
4 Beiträge
 
#1

Append_problem mit textfiles

  Alt 27. Feb 2009, 11:08
Hallo Community,

ich sitze hier grade an meinem kleinen programm und komme nicht weiter.
Es geht um eine prozedur, die einfach nur einen string in eine textfile schreiben soll...
es soll im csv format geschrieben werden.... meine zeile würde ungefähr so aussehen:

;"COTPOZ";"0";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;"1";"Heimteam";"Gastteam";"COT"; "POZ";"Stadion";"Datum";"Kick-Off";"Wetter";"Art";" Bemerkungen";;;;;

is ein bissl groß, aber genauso benötige ich diesen string in genau einer zeile...
doch mit append und write wird immer einen zeilenumbruch zwischen dem " und Bemerkungen eingefügt...
durch diesen zeilenumbruch kann ich aber dann diese zeile in delphi nicht mehr korrekt auslesen, da ein teil fehlt... (zur weiterverarbeitung in einer stringgrid, brauch aber csv, da ich sie auhc für internetdatenbank benötige)...

wie kann ich denn dem prog beibringen, dass er keinen umbruch machen soll???

hoffe ihr könnt mir helfen und bedanke mich schon mal im vorraus für die antworten...

mfg homerunjack
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.109 Beiträge
 
Delphi 12 Athens
 
#2

Re: Append_problem mit textfiles

  Alt 27. Feb 2009, 11:25
Du arbeitest also mit AssignFile+Append?

Aber eigentlich fürgt Write selber da keine Zeilenumbrüche ein.

Wie sieht denn dein Code zum Anhängen aus?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Append_problem mit textfiles

  Alt 27. Feb 2009, 11:30
Zitat von homerunjack22:
zeile würde ungefähr so aussehen:

;"COTPOZ";"0";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;"1";"Heimteam";"Gastteam";"COT"; "POZ";"Stadion";"Datum";"Kick-Off";"Wetter";"Art";" Bemerkungen";;;;;
Was ist denn das Zeichen zwischen " und Bemerkung? Denn hier wird es ganz anders dargestellt. Vielleicht hats Du da ein Zeichen drin was bei der Anzeige als Umbruch interpretiert wird.
Für das, was Du vorhast, würde sich eine TStringList anbieten. Die ist einfacher zu handhaben und bietet mit Laden und Speichern viele Features. Musst mal in der Hilfe nachlesen.

Grüße, Messie
  Mit Zitat antworten Zitat
homerunjack22

Registriert seit: 27. Feb 2009
4 Beiträge
 
#4

Re: Append_problem mit textfiles

  Alt 27. Feb 2009, 11:38
Delphi-Quellcode:
procedure CSV_export_newgame(Datei:string);
var csv:textfile;
    j :integer;
    zeile:string;
begin
  AssignFile(csv, Datei);
  append(csv);
  zeile:='';

  For j:=0 to 72 do
    begin
        If j=72 then
            If NEW_GAME.Bruecke.Cells[j,0]='then
              begin write(csv, zeile); Writeln(csv); end
              else
              begin write(csv, zeile);writeln(csv);end
            
        else
            If NEW_GAME.Bruecke.Cells[j,0]='then
              //Write(csv, NEW_GAME.Bruecke.Cells[j,0]+';')
              zeile:=zeile+NEW_GAME.BRUECKE.Cells[j,0]+';'
            else
              //Write(csv, '"'+ NEW_GAME.Bruecke.Cells[j,0]+ '";');
              zeile:=zeile+'"'+ NEW_GAME.Bruecke.Cells[j,0]+ '";';
    end;

  CloseFile(csv);
bruecke ist eine stringgrid...da stehen die daten drinne...die hat 73 spalten, und wegen csv brauch man ja ein paar trennzeichen inna datei...erst hatte ich es so, dass er direkt schreibt und nach dem letzten ein writeln macht...jetzt hatte ichs ma so probiert, beides gleicher effekt...
mit rewrite funktioniert es, jedoch will ich ja anhängen und nicht immer ne neue datei erstellen...

und jedenfalls fügt er einen umbruch ein...der ja eigentlich im quelltext nicht angeordnet wurde..

@messi: es gibt dazwischen eigentlich kein zeichen; es wird einfach jedes feld aus der stringgrid bruecke als text ausgelesen und in die zeile geschrieben...ich würde eigtl lieber die stringgrid verwenden, weil ich eigtl alle meine prozeduren schon soweit fertig für stringgrids habe (im export von csv in stringgrids, und auswertungsprozeduren)...nur klappt halt der umstieg von rewrite zu append nicht...'-(
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

Re: Append_problem mit textfiles

  Alt 27. Feb 2009, 11:46
öh, warum nicht so?
Delphi-Quellcode:
procedure CSV_export_newgame(Datei:string);
var csv:textfile;
    j :integer;
    zeile:string;
begin
  zeile:='';

  For j:=0 to 71 do
    begin
      If NEW_GAME.Bruecke.Cells[j,0]='then
        zeile:=zeile+NEW_GAME.BRUECKE.Cells[j,0]+';'
      else
        zeile:=zeile+'"'+ NEW_GAME.Bruecke.Cells[j,0]+ '";';
    end;

  // Sollte jetzt ein Zeilenumbruch (CR+LF oder CR oder LF) hier sein, dann schmeiss den raus
  zeile := StringReplace( zeile, #13#10, '', [ rfReplaceAll ] );
  zeile := StringReplace( zeile, #10, '', [ rfReplaceAll ] );
  zeile := StringReplace( zeile, #13 , '', [ rfReplaceAll ] );

  // Wir schreiben jetzt in einem Rutsch, dann ist die Datei nicht so lange blockiert :)
  AssignFile(csv, Datei);
  append(csv);
  WriteLn( csv, zeile );
  CloseFile(csv);
end;
oder mal ganz kurz:

Delphi-Quellcode:
procedure CSV_export_newgame(Datei:string);
var
  csv:textfile;
begin
  AssignFile(csv, Datei);
  append(csv);
  WriteLn( csv, NEW_GAME.Bruecke.Rows[ 0 ].DelimitedText );
  CloseFile(csv);
end;
oh, einen habe ich noch ... der trennt dann auch den Anzeige- vom Code-Teil:

Delphi-Quellcode:
...
  NEW_GAME.Bruecke.Rows[ 0 ].Delimiter := ';';
  NEW_GAME.Bruecke.Rows[ 0 ].QuoteChar := '"';
  CSV_export_newgame( '', NEW_GAME.Bruecke.Rows[ 0 ].DelimitedText );
...

procedure CSV_export_newgame(Datei, Zeile:string);
var
  csv:textfile;
begin
  AssignFile(csv, Datei);
  append(csv);
  WriteLn( csv, Zeile );
  CloseFile(csv);
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

Re: Append_problem mit textfiles

  Alt 27. Feb 2009, 11:48
Hallo,

guck mal bitte genau nach, ob das Stringgrid da nicht eventuell einen Zeilenumbruch reingemacht hat, bevor Du die Daten ausliest. Bei Leerzeichen und Text, die zusammen breiter sind, als die Stringgridspalte, möchte ich das mal nicht grundsätzlich ausschließen.
  Mit Zitat antworten Zitat
homerunjack22

Registriert seit: 27. Feb 2009
4 Beiträge
 
#7

Re: Append_problem mit textfiles

  Alt 27. Feb 2009, 11:55
GENIAL...
ich bin begeistert, es funktioniert tadellos...
danke SIR Rufo...und das beste ich versteh sogar den quelltext
das mit dem #13#10 kannte ich noch nicht, aber wieder was dazugelernt...(is bestimmt auch das was du meinst nahpets)...

gut dann kann ich ja an meinem kleinen projekt weiterschrauben...thx

mfg homerunjack
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz