plik csv i rekord

szukaj na forum nowy temat odpowiedz

Strona [ 1 ] z 1

matiash ten post 08-02-2010 00:10


Użytkownik
Status: Offline
Dołączył: 08-11-2009

Witam,

Posiadam rekord i chciałym go zapisać do pliku csv. Jak zrobić aby np. poszczególne pola rekordu zapisać obok siebie a nie jeden pod drugim. I jak później czytać taki plik ?

Pozdrawiam
Przejdź na górę strony
cytuj
olesio ten post 08-02-2010 00:13


Użytkownik
Status: Online
Dołączył: 04-04-2008

Nie pamiętam jak wyglądają pliki csv, ale to chyba zwykły tekst to może poszczególne pola rekordów sobie
zapisz oddzielone jakimś unikalnym separatorem, na przykład tabulatorem. Później odczyt tego, jest łatwy.
Pozdrawiam: olesio
Przejdź na górę strony
cytuj
Mariusz Jędrzejowski ten post 08-02-2010 09:54





olesio napisał:
Nie pamiętam jak wyglądają pliki csv, ale to chyba zwykły tekst to może poszczególne pola rekordów sobie
zapisz oddzielone jakimś unikalnym separatorem, na przykład tabulatorem. Później odczyt tego, jest łatwy.


Tu jest funkcja czytająca jeden łańcuch z pliku CSV. Można jej użyć tak:

var
  lista: TextFile;

try
    Reset(lista);
except
    ImportujInfoLabel.Caption:='Błąd ładowania pliku.';
    exit
end;

try
while not Eof(lista) do
  begin
     imie := ReadCSV(lista);
     nazwisko := ReadCSV(lista);
     .........
    Readln(lista);
  end
finally
  CloseFile(lista)
end

function ReadCSV(var F : TextFile) : string;
var
  Ch : Char;
  Quoted, Done : boolean;
begin
  Result := '';
  Quoted := False;
  Done := False;
  while not Eoln(F) and not Done do
    begin
      Read(F,Ch);
      case ch of
        #34 : Quoted := not Quoted;
        ',' : if Quoted then
                Result := Result + Ch
              else
                Done := True;
      else
        Result := Result + Ch;
      end;
    end;
end;
Przejdź na górę strony
cytuj
matiash ten post 08-02-2010 12:55


Użytkownik
Status: Offline
Dołączył: 08-11-2009

tzn plik csv później otwieram za pomocą excela, i chciałbym aby tekst nie był tylko w kolumnach "A" jeden pod drugim. Rozumiem, że można odzdzielić sobie tekst jakimś separatorem i potem to sczytywać, ale czy da się np zapisać coś w komórce np. "C1" ?
Przejdź na górę strony
cytuj
Azarien ten post 08-02-2010 15:18
avatar

Użytkownik
Status: Offline
Dołączył: 18-12-2003

CSV, to z definicji, Comma Separated Values, czyli "wartości separowane przecinkami". np.:

Jan,Kowalski,123
Anna,Nowak,1000
"tekst zawierający spacje","w cudzysłowach",500
Przejdź na górę strony
cytuj
szukaj na forum nowy temat odpowiedz

Strona [ 1 ] z 1

1 użytkownik(ów) przegląda ten temat (1 gości)
(żadnych zarejestrowanych użytkowników)

Copyright © 2000-2006 by Coyote Group 0.9.3-pre3
Czas generowania strony: 0.0179 sek. (zapytań SQL: 9)