Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   .csv Datei einlesen, analysieren und bearbeitet abspeichern. (https://www.delphipraxis.net/184749-csv-datei-einlesen-analysieren-und-bearbeitet-abspeichern.html)

Dade 18. Apr 2015 14:59

.csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
HI Leute,
ich bin seit Tagen verzweifelt auf der Suche nach einer Möglichkeit, wie ich viele .csv - Dateien einlesen, einzelne Felder analysieren und alles dann als eine weitere Zeile in nur einer Excel Datei speichern kann.

Ich versuchte bereits Delphi zu lernen, da ich früher als Teenager mit Pascal programmierte, aber es hat sich doch sehr viel getan.


Ich hoffe sehr, dass ihr mir helfen könnt. Das wäre absolut toll.


Ich erkläre kurz worum es geht:
Ich bin an einem Projekt und nutze ein Programm, mit dem man Bilder ausmessen und Zellen zählen kann. Diese Ergebnisse werden mir als .csv - Datei ausgegeben. Insgesamt komme ich bestimmt am Ende auf über 1500 Dateien.
Diese sehen so aus:

--------------------
Annotations;;

Name;Perimeter (µm);Area (µm2)

LK_1_1_F_1;835,4;48705,5

LK_1_1_F_2;1142,7;93813,4

[.....ca. 20 Zeilen........]

LK_1_3;14272,3;7956108,4

;;

Distance measurement annotations;;

Length (µm);;

5,15;;

3,22;;

---------------------------------

Im Endeffekt müssen nun die Zahlen in bestimmter Art und Weise in der Excel Tabelle später stehen. Zusätzlich muss in der 1. Spalte jeweils der csv-Dateiname erscheinen (ist nämlich die Nummer) + die Angabe: LK_1_1_f_2 (als Beispiel von oben) analysiert werden nach "wie oft taucht "F" auf. Für jede .csv - Datei müssen die addiert und dann auch in einer Spalte stehen.

Ich habe hier vorher - Nachher + Erläuterungen hochgeladen: https://www.dropbox.com/sh/blbndn594...t68a?dl=0&s=sl

Alleine schaffe ich das nicht.

Gruß
Kai

khh 18. Apr 2015 16:17

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
naja, die einzelnen Files in ner Schleife durchgehen und darin bearbeiten.

gruss kh

Popov 18. Apr 2015 20:30

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Dade, ich will es nicht beschwören, aber ich denke mir der Ordner "Software-Projekte der Mitglieder" ist eher dafür gedacht, dass Mitglieder ihre Projekte vorstellen können, weniger, dass einer Aufgaben aufgibt.

Da es aber nicht wirklich großes ist, habe ich schnell etwas zusammen getippt. Das Programm macht aus allen CSV Dateien in einem Ordner eine einzige große CSV-Datei.

Beim programmieren bemerkte ich, das die CSV Dateien zwischen den einzelnen Dateien Leerzeilen haben. Die machen TStringList Probleme und lassen sich nicht ohne Probleme beseitigen. Ich hatte aber keine große Lust eine elegante Lösung zu finden, also habe es so gelassen und nur die Fehler ignoriert. Dabei werden keine Daten verschluckt, die Fehler gibt es nur bei den Leeren Zeilen. Auch gibt es nur in der IDE die Fehlermeldungen. Als Exe gestartet werden sie still ignoriert.

Vorausgesetzt alle Dateien sind nach dem gleichen Muster, so gibt es oben 2 und unten 5 Zeilen die u. U. ignoriert werden können. Wenn ja, am Anfang der Prozedur die Anzahl eintragen.
Delphi-Quellcode:
uses
  FileCtrl;

procedure GetFiles(Path, ExtMask: String; List: TStrings);
const
  Attrib = faArchive or faReadOnly or faHidden or faSysFile;
var
  SR: TSearchRec;
begin
  Path := IncludeTrailingBackslash(Path);

  while Copy(ExtMask, 1, 1) = '.' do Delete(ExtMask, 1, 1);

  if FindFirst(Path + '*.' + ExtMask, Attrib, SR) = 0 then
  repeat
    if SameText('.' + ExtMask, ExtractFileExt(SR.Name)) then
      List.Add(Path + SR.Name);
  until FindNext(SR) <> 0;
  SysUtils.FindClose(SR);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  VorneZeilenIgnorieren,
  HintenZeilenIgnorieren,
  i, k: Integer;
  Dir, OutPath: String;
  slDateiListe, slGrosseCsv, slEinzelCsv, slTemp: TStringList;
begin
  VorneZeilenIgnorieren := 0; //2;
  HintenZeilenIgnorieren := 0; //5;

  if not SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then
  begin
    MessageDlg('Kein Ordner ausgewählt.', mtError, [mbOk], 0);
    Exit;
  end;

  slDateiListe := TStringList.Create;
  try
    GetFiles(Dir, 'csv', slDateiListe);

    if slDateiListe.Count = 0 then
    begin
      MessageDlg('Kein Dateien gefunden.', mtError, [mbOk], 0);
      Exit;
    end
    else
      if MessageDlg(Format('%d CSV-Dateien gefunden. Weitermachen?', [slDateiListe.Count]),
        mtConfirmation, [mbYes, mbNo], 0) = mrNo then
          Exit;

    with SaveDialog1 do
    begin
      //Filter := 'CSV-Dateien|*.csv';
      if not Execute then
      begin
        MessageDlg('Vorgang Abgebrochen.', mtError, [mbOk], 0);
        Exit;
      end;
      OutPath := ChangeFileExt(FileName, '.csv');
      if FileExists(OutPath) then
        if MessageDlg('Datei bereits vorhanden. Überschreiben?.',
          mtConfirmation, [mbYes, mbNo], 0) = mrNo then
            Exit;;
    end;

    slGrosseCsv := TStringList.Create;
    try
      for i := 0 to slDateiListe.Count - 1 do
      begin
        slEinzelCsv := TStringList.Create;
        try
          slEinzelCsv.LoadFromFile(slDateiListe[i]);

          //In den csv-Dateien stimmt was nicht, zumindest kommt StringList
          //damit nicht klar. Schnelle Lösung. Es gibt fehlermeldungen, die
          //werden aber ignoriert.
          slTemp := TStringList.Create;
          try
            for k := 0 to slEinzelCsv.Capacity - 1 do
            try
              if Length(slEinzelCsv[k]) > 0 then
              slTemp.Add(slEinzelCsv[k]);
            except
              //Fehler Ignorieren
            end;
            slEinzelCsv.Text := slTemp.Text;
          finally
            slTemp.Free;
          end;

          //Entfernt vorne Zeilen, wenn gewünscht
          k := VorneZeilenIgnorieren;
          while (slEinzelCsv.Count > 0) and (k > 0) do
          begin
            slEinzelCsv.Delete(0);
            Dec(k);
          end;

          //Entfernt vorne Zeilen, wenn gewünscht
          k := HintenZeilenIgnorieren;
          while (slEinzelCsv.Count > 0) and (k > 0) do
          begin
            slEinzelCsv.Delete(slEinzelCsv.Count - 1);
            Dec(k);
          end;

          slGrosseCsv.AddStrings(slEinzelCsv);
        finally
          slEinzelCsv.Free;
        end;
      end;

      slGrosseCsv.SaveToFile(OutPath);
      MessageDlg('CSV-Dateien zusammengefügt und erfolgreich gespeichert ' +
        'unter: "' + OutPath + '".', mtInformation, [mbOk], 0);
    finally
      slGrosseCsv.Free;
    end;
  finally
    slDateiListe.Free;
  end;
end;

Dade 18. Apr 2015 21:54

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Hi Popov,
vielen Dank für den Quellcode.

Da ich totaler Anfänger bin, habe ich folgendes versucht. Ich erstellte ein neues Projekt: (VCL Forms Application)

Darin habe ich einen tbutton eingefügt und per doppelklick geöffnet. Dann direkt da deinen Quellcode eingefügt. Bekomme viele Fehler.

Was mache ich falsch?

himitsu 18. Apr 2015 21:59

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Zitat:

Zitat von Dade (Beitrag 1298365)
Was mache ich falsch?

Du hast vergessen zu sagen was das für Fehler sind. :roll:

Und natürlich auch nicht erwähnt, welche Delphiversion du verwendest.

Popov 18. Apr 2015 22:23

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Zitat:

Zitat von Dade (Beitrag 1298365)
Darin habe ich einen tbutton eingefügt und per doppelklick geöffnet. Dann direkt da deinen Quellcode eingefügt. Bekomme viele Fehler

Wie ich schon oben geschrieben habe sind die Fehlermeldungen in der Entwicklungsumgebung normal. Startest das Programm über die EXE siehst du die Fehlermeldungen nicht.

Ich weiß nicht wieso TStringlist mit deinen CSV Dateien nicht klar kommt. Hab mir die Dateien im Hex-Editor angeguckt und da steht am Ende jeder Zeile #13#13#10. Da sollte nur #13#10 stehen. TStringList macht aus dem einzelnen #13 eine leere Zeile, hat aber Probleme sie zu löschen, warum auch immer. Irgendwie bring das den Count von TStringList durcheinander. Deshalb die Fehlermeldungen. Die kann man ignorieren.

Vielleicht kann hier einer Sagen wie man die Fehlermeldungen in der Entwicklungsumgebung abschalten kann. Da ich es schon lange nicht gemacht habe, habe ich es vergessen.

Wie auch immer, kompilieren und dann als Exe ausführen.

Dade 18. Apr 2015 22:26

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Oh,
ja, also ich nutze: Delphi XE7 und bekam diese Fehler:


[dcc32 Error] Unit1.pas(28): E2029 Statement expected but 'USES' found
[dcc32 Error] Unit1.pas(29): E2003 Undeclared identifier: 'FileCtrl'
[dcc32 Error] Unit1.pas(31): E2070 Unknown directive: 'GetFiles'
[dcc32 Warning] Unit1.pas(33): W1002 Symbol 'faArchive' is specific to a platform
[dcc32 Warning] Unit1.pas(33): W1002 Symbol 'faHidden' is specific to a platform
[dcc32 Warning] Unit1.pas(33): W1002 Symbol 'faSysFile' is specific to a platform
[dcc32 Error] Unit1.pas(37): E2003 Undeclared identifier: 'Path'
[dcc32 Error] Unit1.pas(37): E2250 There is no overloaded version of 'IncludeTrailingBackslash' that can be called with these arguments
[dcc32 Warning] Unit1.pas(37): W1002 Symbol 'IncludeTrailingBackslash' is specific to a platform
[dcc32 Error] Unit1.pas(39): E2003 Undeclared identifier: 'ExtMask'
[dcc32 Error] Unit1.pas(39): E2008 Incompatible types
[dcc32 Error] Unit1.pas(41): E2010 Incompatible types: 'string' and 'Integer'
[dcc32 Error] Unit1.pas(43): E2250 There is no overloaded version of 'SameText' that can be called with these arguments
[dcc32 Error] Unit1.pas(44): E2003 Undeclared identifier: 'List'
[dcc32 Error] Unit1.pas(46): E2003 Undeclared identifier: 'SysUtils'
[dcc32 Error] Unit1.pas(49): E2070 Unknown directive: 'TForm1'
[dcc32 Error] Unit1.pas(60): E2003 Undeclared identifier: 'SelectDirectory'
[dcc32 Error] Unit1.pas(60): E2003 Undeclared identifier: 'sdAllowCreate'
[dcc32 Error] Unit1.pas(60): E2003 Undeclared identifier: 'sdPerformCreate'
[dcc32 Error] Unit1.pas(60): E2003 Undeclared identifier: 'sdPrompt'
[dcc32 Error] Unit1.pas(68): E2003 Undeclared identifier: 'GetFiles'
[dcc32 Error] Unit1.pas(80): E2003 Undeclared identifier: 'SaveDialog1'
[dcc32 Error] Unit1.pas(83): E2003 Undeclared identifier: 'Execute'
[dcc32 Error] Unit1.pas(88): E2003 Undeclared identifier: 'FileName'
[dcc32 Error] Unit1.pas(88): E2250 There is no overloaded version of 'ChangeFileExt' that can be called with these arguments
[dcc32 Fatal Error] Project1.dpr(5): F2063 Could not compile used unit 'Unit1.pas'


Damit bekomme ich bestimmt keine .exe.


So habe ich deinen Code eingesetzt in das Fenster, das kommt, wenn ich einen tbutton einfüge und diesen doppelt anklicke:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
uses
  FileCtrl;

procedure GetFiles(Path, ExtMask: String; List: TStrings);
const
  Attrib = faArchive or faReadOnly or faHidden or faSysFile;
var
  SR: TSearchRec;
begin
  Path := IncludeTrailingBackslash(Path);

  while Copy(ExtMask, 1, 1) = '.' do Delete(ExtMask, 1, 1);

  if FindFirst(Path + '*.' + ExtMask, Attrib, SR) = 0 then
  repeat
    if SameText('.' + ExtMask, ExtractFileExt(SR.Name)) then
      List.Add(Path + SR.Name);
  until FindNext(SR) <> 0;
  SysUtils.FindClose(SR);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  VorneZeilenIgnorieren,
  HintenZeilenIgnorieren,
  i, k: Integer;
  Dir, OutPath: String;
  slDateiListe, slGrosseCsv, slEinzelCsv, slTemp: TStringList;
begin
  VorneZeilenIgnorieren := 0; //2;
  HintenZeilenIgnorieren := 0; //5;

  if not SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then
  begin
    MessageDlg('Kein Ordner ausgewählt.', mtError, [mbOk], 0);
    Exit;
  end;

  slDateiListe := TStringList.Create;
  try
    GetFiles(Dir, 'csv', slDateiListe);

    if slDateiListe.Count = 0 then
    begin
      MessageDlg('Kein Dateien gefunden.', mtError, [mbOk], 0);
      Exit;
    end
    else
      if MessageDlg(Format('%d CSV-Dateien gefunden. Weitermachen?', [slDateiListe.Count]),
        mtConfirmation, [mbYes, mbNo], 0) = mrNo then
          Exit;

    with SaveDialog1 do
    begin
      //Filter := 'CSV-Dateien|*.csv';
      if not Execute then
      begin
        MessageDlg('Vorgang Abgebrochen.', mtError, [mbOk], 0);
        Exit;
      end;
      OutPath := ChangeFileExt(FileName, '.csv');
      if FileExists(OutPath) then
        if MessageDlg('Datei bereits vorhanden. Überschreiben?.',
          mtConfirmation, [mbYes, mbNo], 0) = mrNo then
            Exit;;
    end;

    slGrosseCsv := TStringList.Create;
    try
      for i := 0 to slDateiListe.Count - 1 do
      begin
        slEinzelCsv := TStringList.Create;
        try
          slEinzelCsv.LoadFromFile(slDateiListe[i]);

          //In den csv-Dateien stimmt was nicht, zumindest kommt StringList
          //damit nicht klar. Schnelle Lösung. Es gibt fehlermeldungen, die
          //werden aber ignoriert.
          slTemp := TStringList.Create;
          try
            for k := 0 to slEinzelCsv.Capacity - 1 do
            try
              if Length(slEinzelCsv[k]) > 0 then
              slTemp.Add(slEinzelCsv[k]);
            except
              //Fehler Ignorieren
            end;
            slEinzelCsv.Text := slTemp.Text;
          finally
            slTemp.Free;
          end;

          //Entfernt vorne Zeilen, wenn gewünscht
          k := VorneZeilenIgnorieren;
          while (slEinzelCsv.Count > 0) and (k > 0) do
          begin
            slEinzelCsv.Delete(0);
            Dec(k);
          end;

          //Entfernt vorne Zeilen, wenn gewünscht
          k := HintenZeilenIgnorieren;
          while (slEinzelCsv.Count > 0) and (k > 0) do
          begin
            slEinzelCsv.Delete(slEinzelCsv.Count - 1);
            Dec(k);
          end;

          slGrosseCsv.AddStrings(slEinzelCsv);
        finally
          slEinzelCsv.Free;
        end;
      end;

      slGrosseCsv.SaveToFile(OutPath);
      MessageDlg('CSV-Dateien zusammengefügt und erfolgreich gespeichert ' +
        'unter: "' + OutPath + '".', mtInformation, [mbOk], 0);
    finally
      slGrosseCsv.Free;
    end;
  finally
    slDateiListe.Free;
  end;
end;
end;

Popov 18. Apr 2015 22:32

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Dade, du bist fast ein Doktor. Sowas verpflichtet. Drück bitte noch mal auf BEARBEITEN und setz den Delphi Code in Delphi-Tags:
Code:
[DELPHI]Hier dein Code[/DELPHI]

Dade 18. Apr 2015 23:46

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
ok, gemacht.

Danke für den Hinweis

DeddyH 19. Apr 2015 00:05

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Zitat:

Delphi-Quellcode:
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

Da ist wohl beim Kopieren etwas durcheinander geraten.

Dade 19. Apr 2015 08:21

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Guten Morgen,
danke für eure Hilfe. Das hätte ich ja gar nicht erwartet.

Ihr seid spitze!

Nur komme ich einfach nicht weiter.

Ich erstellte einen "tbutton" und darin setzte ich den code. Bekomme lauter Fehler.

Das Programm speicherte ich ab und lud es hier hoch: https://www.dropbox.com/sh/32uhaxoo8...rGJa?dl=0&s=sl (auch zusammen in test.rar)


Eben kam ein Hinweis, das etwas bei copy & paste falsch gelaufen sein sollte, aber die Programmzeile finde ich bereits im code.

Die Zeile "{----------------------------------}" dient nur als Trennung von dem Delphi - vorgegebenen und dem Code von euch.

Delphi-Quellcode:
unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm2 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
{-------------------------------}

uses
  FileCtrl;

procedure GetFiles(Path, ExtMask: String; List: TStrings);
const
  Attrib = faArchive or faReadOnly or faHidden or faSysFile;
var
  SR: TSearchRec;
begin
  Path := IncludeTrailingBackslash(Path);

  while Copy(ExtMask, 1, 1) = '.' do Delete(ExtMask, 1, 1);

  if FindFirst(Path + '*.' + ExtMask, Attrib, SR) = 0 then
  repeat
    if SameText('.' + ExtMask, ExtractFileExt(SR.Name)) then
      List.Add(Path + SR.Name);
  until FindNext(SR) <> 0;
  SysUtils.FindClose(SR);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  VorneZeilenIgnorieren,
  HintenZeilenIgnorieren,
  i, k: Integer;
  Dir, OutPath: String;
  slDateiListe, slGrosseCsv, slEinzelCsv, slTemp: TStringList;
begin
  VorneZeilenIgnorieren := 0; //2;
  HintenZeilenIgnorieren := 0; //5;

  if not SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then
  begin
    MessageDlg('Kein Ordner ausgewählt.', mtError, [mbOk], 0);
    Exit;
  end;

  slDateiListe := TStringList.Create;
  try
    GetFiles(Dir, 'csv', slDateiListe);

    if slDateiListe.Count = 0 then
    begin
      MessageDlg('Kein Dateien gefunden.', mtError, [mbOk], 0);
      Exit;
    end
    else
      if MessageDlg(Format('%d CSV-Dateien gefunden. Weitermachen?', [slDateiListe.Count]),
        mtConfirmation, [mbYes, mbNo], 0) = mrNo then
          Exit;

    with SaveDialog1 do
    begin
      //Filter := 'CSV-Dateien|*.csv';
      if not Execute then
      begin
        MessageDlg('Vorgang Abgebrochen.', mtError, [mbOk], 0);
        Exit;
      end;
      OutPath := ChangeFileExt(FileName, '.csv');
      if FileExists(OutPath) then
        if MessageDlg('Datei bereits vorhanden. Überschreiben?.',
          mtConfirmation, [mbYes, mbNo], 0) = mrNo then
            Exit;;
    end;

    slGrosseCsv := TStringList.Create;
    try
      for i := 0 to slDateiListe.Count - 1 do
      begin
        slEinzelCsv := TStringList.Create;
        try
          slEinzelCsv.LoadFromFile(slDateiListe[i]);

          //In den csv-Dateien stimmt was nicht, zumindest kommt StringList
          //damit nicht klar. Schnelle Lösung. Es gibt fehlermeldungen, die
          //werden aber ignoriert.
          slTemp := TStringList.Create;
          try
            for k := 0 to slEinzelCsv.Capacity - 1 do
            try
              if Length(slEinzelCsv[k]) > 0 then
              slTemp.Add(slEinzelCsv[k]);
            except
              //Fehler Ignorieren
            end;
            slEinzelCsv.Text := slTemp.Text;
          finally
            slTemp.Free;
          end;

          //Entfernt vorne Zeilen, wenn gewünscht
          k := VorneZeilenIgnorieren;
          while (slEinzelCsv.Count > 0) and (k > 0) do
          begin
            slEinzelCsv.Delete(0);
            Dec(k);
          end;

          //Entfernt vorne Zeilen, wenn gewünscht
          k := HintenZeilenIgnorieren;
          while (slEinzelCsv.Count > 0) and (k > 0) do
          begin
            slEinzelCsv.Delete(slEinzelCsv.Count - 1);
            Dec(k);
          end;

          slGrosseCsv.AddStrings(slEinzelCsv);
        finally
          slEinzelCsv.Free;
        end;
      end;

      slGrosseCsv.SaveToFile(OutPath);
      MessageDlg('CSV-Dateien zusammengefügt und erfolgreich gespeichert ' +
        'unter: "' + OutPath + '".', mtInformation, [mbOk], 0);
    finally
      slGrosseCsv.Free;
    end;
  finally
    slDateiListe.Free;
  end;
end;


{-------------------------------}
end;

end.

himitsu 19. Apr 2015 09:50

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
"Falsch gelaufen" ist gut.

Du kopierst fast den Inhalt einer kompletten Unit (mehrere Prozeduren inkl. Uses-Abschnitt) in eine Prozedur rein, wo natürlich nur der Inhalt einer einzelnen Prozedur rein gehört ... das kann einfach nicht gehn.
Und genau das hat dir auch der Compiler gesagt, also daß er an dieser Stelle kein "unit" haben will.

Popov 19. Apr 2015 13:30

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Liste der Anhänge anzeigen (Anzahl: 1)
@Dade

Das hat irgendwie keinen Zweck. Anscheinend kopierst du alles ohne überhaupt zu gucken was du wo kopierst. Also eigentlich dachte ich, dass Copy&Paste die einfachste Art der Programmierung sind, aber selbst das muss man mit etwas Überlegung machen. Wie kann man einen ganzen Text mit zwei Prozeduren nehmen und ohne Überlegung einfach irgendwo rein kopieren?

Mich hat der Fehler von gestern etwas beschäftigt. Warum es gestern den Fehler gab, ich weiß es nicht, heute war er nicht da. Also habe ich noch paar Buttons dazu gefügt, alles auf drei Prozeduren aufgeteilt und ein fertiges Programm erstellt. Das kannst du haben, denn sonst wärst du schneller wenn du alles von Hand zusammenfügst.

Dade 19. Apr 2015 13:49

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Wow, vielen, vielen Dank.

Die app funkioniert super.

Nun kann ich mich daran machen Delphi zu lernen und dein Tool zu verstehen.

Dazu gleich eine Frage:

Lässt du jedes Feld der .csv - Datei (also jeweils zwischen ;......;) einzeln einlesen und einzeln abspeichern? Dann könnte ich nämlich da irgendwann mal ansetzen und versuchen die Daten zu verändern.

Denn letztendlich sollen die Daten nur eingelesen, bearbeitet und in ganz anderer Form gespeichert werden.

DadeLL 19. Apr 2015 15:20

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Lese ich das richtig?

Die Daten sollen "letztendlich nur" eingelesen, bearbeitet und in ganz anderer Form gespeichert werden?

Wieviel kostet denn solch ein Doktorvater "letztendlich nur"?

:evil::twisted:

Dade 19. Apr 2015 15:28

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
:lol:

wenn es so einfach wäre. (Das "nur" war relativ optimistisch ;-) )

Es geht darum: Ein Programm zum Auszählen und Messen von Zellen und deren Bestandteilen (alles Handarbeit) gibt mir die Ursprungs - .csv - Dateien aus.

Auf diese habe ich gar keinen Einfluss.

Diese addieren sich bestimmt zu ca. 1500 Stück. Damit kann man aber nichts anfangen. Ziel ist es diese vielen Daten, wie Größe, Anzahl (kodiert z.b. als L_K_1_K, L_K_2_R, L_K_3_K, etc.) richtig analysiert in einer einzigen csv Datei zu sammeln. Dies kann dann anschließend statistisch analysiert werden.

Das Programm soll einfach nur die stupide manuelle und fehleranfällige Arbeit über Wochen abnehmen.

In diesem Fall wäre z.B. wichtig in den Angaben: L_K_1_K z.B. zu zählen, wie oft die L_K (Lymphknoten) - Angabe mit zusätzlichem _K (Kern) auftaucht pro csv Datei.


Klingt relativ einfach, aber 1500x eine csv Datei öffnen, zählen, Messerte übertragen....puh, das schreit förmlich nach Tippfehlern.

Das ist also noch lange nicht die Arbeit, nur ein kleiner Schritt auf dem Weg zum Ziel.

BUG 19. Apr 2015 16:04

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Zitat:

Zitat von Dade (Beitrag 1298415)
Klingt relativ einfach, aber 1500x eine csv Datei öffnen, zählen, Messerte übertragen....puh, das schreit förmlich nach Tippfehlern.

Wer macht denn so etwas? :shock:

Bei uns werden für solche Programmieraufgaben öfter mal Studenten als HiWis angestellt. Ein Informatik-Student mit ein bisschen Pythonkenntnissen (oder auch ohne) sollte solche eigentlich schnell hinbekommen. Delphi ist imho nicht unbedingt die übliche/passende Sprache für solche Aufgaben.
Auch die statistische Auswertung kann man mit Paketen wie Matplotlib gut hinbekommen.

Wenn man viel Statistik und weniger Zeilenbasierte Textverarbeitung macht, kann man sich auch R mal angucken.



Aber wenn du es mit Delphi machen willst, dann gibt es hier genug sachkundige Hilfe. Das ist ja auch was wert :wink:

Dade 19. Apr 2015 16:13

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Tja, bei uns gibt es nicht extra Hiwis für diese Arbeit....hier gibt es nur "Doktoranden" ;-)

Ich habe bereits einen Statistiker, der R beherrscht. Leider will der die Daten halt in einer einzelnen csv Datei.


Delphi....ich dachte nach Pascal in der Jugend müsste das doch klappen, aber ist alles doch irgendwie anders.

juergen 19. Apr 2015 20:32

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

codemäßig kann ich dich hier (noch) nicht unterstützen, da meine persönliche Einschätzung die ist, dass das Ganze momentan zu aufwendig werden würde.
Ich hatte aber mal ein Tool programmiert, welches Csv Dateien einlesen kann und sehr gute Filtermöglichkeiten bietet. Die Anzahl der Ergebnisse wird in der 1. Spalte unten angezeigt.
Für die Anzeige und Filterung nutze ich das geniale cxGrid von DevExpress und die Csv-Datei wird in einem Dataset vorgehalten.
Die Frage wäre auch, ob du die CSV Dateien mit dem Programm von Popov in eine Datei zusammenführst (das Programm ist hier auch im Anhang), dann mit meinem Tool filterst und abschließend in Excel bearbeitest.
Wenn du ein fertiges Programm selbst erstellen möchtest, müssten deine Vorgaben präzisiert werden. Ich kann mir vorstellen, dass das Ganze aber sehr aufwendig werden kann.

//Edit
- Bedingung für das Csv-Filtertool von mir ist, dass deine zusammengefügte Csv-Datei in allen Zeilen den gleichen "Satzaufbau" hat (gleiche Anzahl "Spalten" und die Werte immer an derselben Stelle stehen)
- Mein Filtertool bietet einen Excelexport der gefilterten Ergebnisse an...(dazu muss Excel nicht auf dem Rechner installiert sein)

Dade 1. Mai 2015 09:36

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
HI Leute,
ich habe mich mal genau darangesetzt und versucht die exakten Anforderungen darzustellen:



Die Aufgabe:
- Es soll in einem Verzeichnis alle .csv - Dateien finden und nach einander einlesen und bearbeiten.

Dank eurer Hilfe habe ich bereits den Programmcode zum Importieren der csv - Dateien. Leider stehe ich bei Delphi völlig am Anfang.

Quelldatei - Beispiel:
Name..................Perimeter (µm)........Area (µm2)

LK_1_1_F_1...........835,4.......................4 8705,5
...
LK_1_1_K_2............980......................... 53469,4
...
LK_1_1................20210,2...................26 170792,4
...
Metastase_LK_1_2......25142,1..................802 9364,2


Quelldateien und Ziel - EXCEL Tabelle befinden sich hier:
https://www.dropbox.com/sh/blbndn594...t68a?dl=0&s=sl


- Die Bearbeiteten Daten jeder .csv - Datei kommt in eine neue Zeile (Daten können aber mehrere Zeilen beanspruchen)

- Der Dateiname soll in der 1. Spalte stehen

( X kann Werte von: 1-20 annehmen)

- [LK_X_X] + Spalte mit Werten (LK_1_1, LK_1_2, ... stehen in einer Spalte )

- [LK_X_X] + passende [Metastase_LK_X_X] = Extraspalte: 1
- [LK_X_X] + keine passende [Metastase_LK_X_X] = Extraspalte: 0

(Metastase_LK_1_1 , Metastase_LK_1_2, Metastase_LK_1_3)

- Dahinter Summe aller [LK_X_X_F] + Extraspalte mit den Einzelnamen (LK_1_1_F usw. Z.B. 16, wenn es LK_1_1_K_1 .... LK_1_1_K_16 in der Quelldatei steht.)

- Summe aus [LK_X_X_K] + Extraspalte mit den Einzelnamen (LK_1_1_K)

- Summe aus [LK_X_X_K_X_R] + Extraspalte mit den Einzelnamen (LK_1_1_K_1_R)

- Summe aus [LK_X_X_NK] + Extraspalte mit den Einzelnamen + Extraspalten mit entsprechenden Werten (LK_1_1_NK)



Quelldateien und Ziel - EXCEL Tabelle befinden sich hier:
https://www.dropbox.com/sh/blbndn594...t68a?dl=0&s=sl


Ich weiß das ist nicht gerade einfach, aber wer hat dafür eine Lösung?

Vielen Dank

Popov 1. Mai 2015 11:52

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Kann es sein, dass du gerade die Ursprungsfrage komplett durcheinandergebracht hast? Wer macht den sowas? Anscheinend ist dir der Respekt vor den Leuten die dir geholfen haben schnuppe. Nun blickt man nicht mehr durch um was es in der ersten Frage ging und alle die dir damals geholfen haben wirken wie kleine Spastiker, weil die Antworten nicht zu den Fragen passen.

Die Lösung deiner neuen Aufgabe ist Pilepale, aber du gehst nicht respektvoll mit der Hilfe um.

Übrigens, alleine das Erfassen von Daten ist nicht das Einzige was Wissenschaftler machen. Das können auch Statistiker. Das Auswerten macht einen Wissenschaftler aus. Wie wäre es wenn du endlich etwas für deinen Doktortitel machen würdest und mal selber an die Daten gehst, statt dass es andere für dich machen sollen.

Dade 1. Mai 2015 12:59

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Ja,
ich habe tatsächlich die erste Frage geändert, ich dachte wohl das ist hilfreich, da die Ursprungsfrage ja nur "grob" beschrieben war.

Ich wollte damit niemanden verärgern, nur hoffte ich so auf Hilfe von Leuten, die zufällig den Thread öffneten. Aber keine Sorge, ich habe den Originaltext, soweit ich mich erinnern konnte, wieder hergestellt.


Auch geht es eigentlich nicht um meine Doktorarbeit (auch wenn ich das der Einfachheit halber schrieb), sondern eigentlich die von einem sehr guten Freund, dem ich einiges zu verdanken habe und er mich nun um Hilfe bat und ich dachte dies ließe sich noch Pascal machen.
Aber das bringt seine eigenen Probleme mit sich.

Ich wollte niemanden bloß stellen oder beleidigen. Es tut mir leid, wenn dies so rüber kam.

Ich bitte trotz all dem Missverständnis inständig um Hilfe bei dem Problem.

jobo 1. Mai 2015 13:55

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
ot
Wo ist eigentlich der Sinn, Beispieldaten, Bilder, etc in einem Fremdsystem zu veröffentlichen?
Noch dazu in einem System mit Daten-Inkontinenz?
/ot

Sir Rufo 1. Mai 2015 13:59

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Ich würde aus diesem ersten Wert (der für mich aussieht wie ein zusammengesetzter Schlüssel) die einzelnen Werte extrahieren und in ein eigenes Feld schreiben. Die ganzen Werte dann in eine Datenbank und darauf ein paar Abfragen loslassen.

Dade 1. Mai 2015 14:12

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Zitat:

Zitat von jobo (Beitrag 1299923)
ot
Wo ist eigentlich der Sinn, Beispieldaten, Bilder, etc in einem Fremdsystem zu veröffentlichen?
Noch dazu in einem System mit Daten-Inkontinenz?
/ot

Das liegt an der Software.
Es wurden wohl Bilder von Zellen in einer Software markiert und dann exportiert diese Software .csv - Dateien. Diese lassen sich nicht verändern.

Das ist ja das Problem. Für die weitere Statistik braucht man wieder eine EXCEL Tabelle, die anders sortiert werden muss. Ich hatte schon mit meinem Kumpel gesprochen, ob man die Daten anders exportieren könnte. Aber die Software lässt nichts zu.


Hier das, was mein Kumpel mir schickte, damit ich verstehe woher die Daten überhaupt kommen.

https://www.dropbox.com/s/7tsu0kzft6...docx?dl=0&s=sl

Dade 1. Mai 2015 14:15

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Zitat:

Zitat von Sir Rufo (Beitrag 1299924)
Ich würde aus diesem ersten Wert (der für mich aussieht wie ein zusammengesetzter Schlüssel) die einzelnen Werte extrahieren und in ein eigenes Feld schreiben. Die ganzen Werte dann in eine Datenbank und darauf ein paar Abfragen loslassen.


Danke für die Idee und deine Hilfe,
das Zusammengesetzte ist das richtig Schwere an dem ganzen Sortieren. Da die Anzahl der Kombinationen übersichtlich bleibt, bietet sich vielleicht auch einfach ein Vergleich mit einer Liste von festgelegten Werten an. Das macht es vielleicht "einfacher" ?

jobo 1. Mai 2015 14:18

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Ich hab leider noch nie mit einem Statistikprogramm gearbeitet. Aber kann das nicht vielleicht selber zählen? Wieso muss da mit dem Import Exportprogramm rumgewürgt werden?
Wenn das Statistikprogramm nicht zählen kann, bin ich auch für eine Vorverarbeitung in einer Datenbank.
@Dateninkontinenz: Ich rede nicht von dem CSV Format, sondern von Dropbox.

Bjoerk 1. Mai 2015 14:40

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Zitat:

Zitat von Dade (Beitrag 1299928)
Hier das, was mein Kumpel mir schickte, damit ich verstehe woher die Daten überhaupt kommen. https://www.dropbox.com/s/7tsu0kzft6...docx?dl=0&s=sl

Die Datei sieht also so aus. Davon hast du ca. 1500 Stück. Was willst du jetzt mit diesen Daten machen?
Code:
Annotations;;
Name;Perimeter (µm);Area (µm2)
LK_1_1_F_1;835,4;48705,5
LK_1_1_F_2;1142,7;93813,4
LK_1_1_F_3;2015,1;248967,5
LK_1_1_F_4;811,9;36774,7
LK_1_1_F_5;1044,4;60502,5
LK_1_1_F_6;1692;191114,3
LK_1_1_F_7;1445,5;114177,6
LK_1_1_F_8;545,8;20192,7
LK_1_1_F_9;1584,6;144461,9
LK_1_1_F_10;727,9;30413,9
LK_1_1_F_11;684,3;30024,3
LK_1_1_F_12;1231,6;99129,3
LK_1_1_F_13;1448,6;148318,6
LK_1_1_F_14;1187,8;78164,4
LK_1_1_F_15;934,5;53826,6
LK_1_1_F_16;2210,6;247501,8
LK_1_2_F_1;810,5;46546,8
LK_1_2_F_2;372,7;9454,5
LK_1_2_F_3;1167,4;98346,6
LK_1_2_F_4;741,1;36641,4
LK_1_2_F_5;745;24889,8
LK_1_2_F_6;1209,7;92761,7
LK_1_2_F_7;1404,5;126341,2
LK_1_2_F_8;903,5;56553,1
LK_1_2_F_9;459,2;14371,8
LK_1_3_F_1;632,6;27715,8
LK_1_3_F_3;1517,8;164353
LK_1_3_F_2;1429,6;133297,9
LK_1_3_F_4;869;54261,1
LK_1_3_F_5;1527,6;128808,1
LK_1_3_F_6;1209,9;81847,1
LK_1_3_F_7;883,9;49059,1
Metastase_LK_1_2;25142,1;8029364,2
LK_1_3_K_2;980;53469,4
LK_1_3_K_3_R;1211,6;96599
LK_1_2_K_7_R;636,3;28886,3
LK_1_2_K_6_R;753,7;35928,8
LK_1_2_K_3;751,6;39062
LK_1_1_K_14;479,9;13569
LK_1_1_K_13;992,3;64097,2
LK_1_1_K_12;519,8;16389,9
LK_1_1_K_11;246,7;3485,1
LK_1_1_K_9_R;517,3;17527,7
LK_1_1_K_2_R;421,5;12364,6
LK_1_1_K_1_R;449,6;14463,4
LK_1_3_F_8;2488,8;393729,8
LK_1_3_F_9;1792,4;225760
LK_1_3_K_9_R;1222,6;96347,3
LK_1_3_K_8_R;1946,6;265236,7
Metastase_LK_1_3;20714,7;2133394,5
LK_1_1_K_17;1102,3;79711,3
Metastase_LK_1_1;26998;5798728,2
LK_1_1;20210,2;26170792,4
LK_1_2;39765,9;15226633,7
LK_1_3;14272,3;7956108,4

Distance measurement annotations;;
Length (µm);;
5,15;;
3,22;;

Dade 1. Mai 2015 14:56

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Zitat:

Zitat von Bjoerk (Beitrag 1299934)
Zitat:

Zitat von Dade (Beitrag 1299928)
Hier das, was mein Kumpel mir schickte, damit ich verstehe woher die Daten überhaupt kommen. https://www.dropbox.com/s/7tsu0kzft6...docx?dl=0&s=sl

Die Datei sieht also so aus. Davon hast du ca. 1500 Stück. Was willst du jetzt mit diesen Daten machen?
Code:
Annotations;;
Name;Perimeter (µm);Area (µm2)
LK_1_1_F_1;835,4;48705,5
LK_1_1_F_2;1142,7;93813,4
LK_1_1_F_3;2015,1;248967,5
LK_1_1_F_4;811,9;36774,7
LK_1_1_F_5;1044,4;60502,5
LK_1_1_F_6;1692;191114,3
LK_1_1_F_7;1445,5;114177,6
LK_1_1_F_8;545,8;20192,7
LK_1_1_F_9;1584,6;144461,9
LK_1_1_F_10;727,9;30413,9
LK_1_1_F_11;684,3;30024,3
LK_1_1_F_12;1231,6;99129,3
LK_1_1_F_13;1448,6;148318,6
LK_1_1_F_14;1187,8;78164,4
LK_1_1_F_15;934,5;53826,6
LK_1_1_F_16;2210,6;247501,8
LK_1_2_F_1;810,5;46546,8
LK_1_2_F_2;372,7;9454,5
LK_1_2_F_3;1167,4;98346,6
LK_1_2_F_4;741,1;36641,4
LK_1_2_F_5;745;24889,8
LK_1_2_F_6;1209,7;92761,7
LK_1_2_F_7;1404,5;126341,2
LK_1_2_F_8;903,5;56553,1
LK_1_2_F_9;459,2;14371,8
LK_1_3_F_1;632,6;27715,8
LK_1_3_F_3;1517,8;164353
LK_1_3_F_2;1429,6;133297,9
LK_1_3_F_4;869;54261,1
LK_1_3_F_5;1527,6;128808,1
LK_1_3_F_6;1209,9;81847,1
LK_1_3_F_7;883,9;49059,1
Metastase_LK_1_2;25142,1;8029364,2
LK_1_3_K_2;980;53469,4
LK_1_3_K_3_R;1211,6;96599
LK_1_2_K_7_R;636,3;28886,3
LK_1_2_K_6_R;753,7;35928,8
LK_1_2_K_3;751,6;39062
LK_1_1_K_14;479,9;13569
LK_1_1_K_13;992,3;64097,2
LK_1_1_K_12;519,8;16389,9
LK_1_1_K_11;246,7;3485,1
LK_1_1_K_9_R;517,3;17527,7
LK_1_1_K_2_R;421,5;12364,6
LK_1_1_K_1_R;449,6;14463,4
LK_1_3_F_8;2488,8;393729,8
LK_1_3_F_9;1792,4;225760
LK_1_3_K_9_R;1222,6;96347,3
LK_1_3_K_8_R;1946,6;265236,7
Metastase_LK_1_3;20714,7;2133394,5
LK_1_1_K_17;1102,3;79711,3
Metastase_LK_1_1;26998;5798728,2
LK_1_1;20210,2;26170792,4
LK_1_2;39765,9;15226633,7
LK_1_3;14272,3;7956108,4

Distance measurement annotations;;
Length (µm);;
5,15;;
3,22;;




Die Aufgabe:
- Das Programm soll in einem Verzeichnis alle .csv - Dateien finden und nach einander einlesen und bearbeiten.


Quelldatei - Beispiel: (Hast du ja bereits komplett dargestellt. Hier reduziert auf die unterschiedlichen Kombinationen.)
Name..................Perimeter (µm)........Area (µm2)

LK_1_1_F_1...........835,4.......................4 8705,5
...
LK_1_1_K_2............980......................... 53469,4
...
LK_1_1................20210,2...................26 170792,4
...
Metastase_LK_1_2......25142,1..................802 9364,2


Quelldateien und Ziel - EXCEL Tabelle befinden sich hier: (unter Beispiel)
https://www.dropbox.com/sh/blbndn594...t68a?dl=0&s=sl


- Die Bearbeiteten Daten jeder .csv - Datei kommt in eine neue Zeile (Daten können aber mehrere Zeilen beanspruchen)

- Der Dateiname soll in der 1. Spalte stehen

( X kann Werte von: 1-20 annehmen)

- [LK_X_X] + Spalte mit Werten (LK_1_1, LK_1_2, ... stehen in einer Spalte )

- [LK_X_X] + passende [Metastase_LK_X_X] = Extraspalte: 1
- [LK_X_X] + keine passende [Metastase_LK_X_X] = Extraspalte: 0

(Metastase_LK_1_1 , Metastase_LK_1_2, Metastase_LK_1_3)

- Dahinter Summe aller [LK_X_X_F] + Extraspalte mit den Einzelnamen (LK_1_1_F usw. Z.B. 16, wenn es LK_1_1_K_1 .... LK_1_1_K_16 in der Quelldatei steht.)

- Summe aus [LK_X_X_K] + Extraspalte mit den Einzelnamen (LK_1_1_K)

- Summe aus [LK_X_X_K_X_R] + Extraspalte mit den Einzelnamen (LK_1_1_K_1_R)

- Summe aus [LK_X_X_NK] + Extraspalte mit den Einzelnamen + Extraspalten mit entsprechenden Werten (LK_1_1_NK)



Eine Beispiel - Excel - Datei findet ihr unter Beispiel: AuswertungLymphknoten_Vorlage.xlsx


Oben steht quasi eine stark zusammengefasste Version der Aufgaben. Ich hoffe verständlich




Quelldateien und Ziel - EXCEL Tabelle befinden sich hier:
https://www.dropbox.com/sh/blbndn594...t68a?dl=0&s=sl

Bjoerk 1. Mai 2015 18:53

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Das versteht so leider ein NichtMediziner nicht? Du müsstest etwas näher erläutern wie die Ergebnisse zustande kommen sollen, zum Beispiel an Hand der Datei die du gepostet hast.

Dade 1. Mai 2015 19:59

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Zitat:

Zitat von Bjoerk (Beitrag 1299951)
Das versteht so leider ein NichtMediziner nicht? Du müsstest etwas näher erläutern wie die Ergebnisse zustande kommen sollen, zum Beispiel an Hand der Datei die du gepostet hast.

HI Bjoerk,
was genau meinst du? Was für Informationen brauchst du noch?

Also auf Dropbox gibt es eine Excel - Datei, die zeigen soll, wie das Ergebnis ungefähr auszusehen hat, damit sie weiter verarbeitet werden kann.

Die Reihenfolge der Spalten ist völlig egal !!! Solange die genannten Aufgaben des Tools erfüllt werden ist alles super. Den Rest kann man immer noch per Hand machen.

Bjoerk 1. Mai 2015 20:47

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Es gibt zwei Abschnitte (Annotations):
Code:
Name;Perimeter;Area
und
Code:
Length (µm);;
Ist das in jeder Datei so?

Im 1. Abscnitt gibt es Kürzel zum Beispiel
Code:
LK_1_1_F_1
LK_1_1_K_9_R
Metastase_LK_1_2
Was sagen die aus? Nach welchen Indices wurden die erstellt und wie sollen die verrechnet werden? Da soll doch wahrscheinlich was aufsummiert werden? Nach welcher Formel? Welche LK gehören zusammen? Und wie soll Metastase_LK berücksichtigt werden?

Was soll mit den Daten aus dem 2. Abschnitt passieren?

Dade 1. Mai 2015 21:05

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Zitat:

Zitat von Bjoerk (Beitrag 1299964)
Es gibt zwei Abschatte (Annotations):
Code:
Name;Perimeter;Area
und
Code:
Length (µm);;
Ist das in jeder Datei so?

Ne, es gibt leider auch Dateien ohne diesen Wert. Leider...

Hier ein Haufen Beispieldateien: Hier noch ein paar Quelldateien: https://www.dropbox.com/sh/v9bfyh9iz...Fs3a?dl=0&s=sl




Zitat:

Im 1. Abscnitt gibt es Kürzel zum Beispiel
Code:
LK_1_1_F_1
LK_1_1_K_9_R
Metastase_LK_1_2
Was sagen die aus? Nach welchen Indices wurden die erstellt und wie sollen die verrechnet werden? Da soll doch wahrscheinlich was aufsummiert werden? Nach welcher Formel?
LK = Lymphknoten
LK_1_1 = Lymphknoten 1.1 (Gibt auch 1.2, 1.3, ... und vielleicht auch 2.1 , 2.2, 2.3 (kommt auf die Zellschnitte an.)
LK_1_1_F_1 = Lymphknoten 1.1 und 1x Follikel
Metastase_LK_1_2 = Metastase im Lymphknoten 1.2 (das muss nur in einer Spalte mit 0/1 (nein/ja) eingesetzt werden, wenn es z.B. LK_1_1 und Metastase_LK_1_1 gleichzeitig gibt.


Hier ist eine Erläuterung, wie man überhaupt auf die Daten kommt: https://www.dropbox.com/s/7tsu0kzft6...docx?dl=0&s=sl

Mit Summe meine ich einfach:

Wenn:
LK_1_F_1.........10002...3423
LK_1_F_2..........4234....22
LK_1_F_3...........23,2...12,1

Dann wird das in der Spalte "F" (Follikel) zu "3" summiert.
Dann wird jedoch noch drei Spalten gebraucht, in der alle LK_X_F_X, Wert1, Wert2 stehen.

Ich weiß das ist sehr kompliziert, daher die EXCEL Datei (unter Beispiele), wo immer unten drunter steht, wo die Daten herkommen. Ich verstehe aber total, warum das nicht so einfach ist.



Zitat:

Was soll mit den Daten aus dem 2. Abschnitt passieren?
2. Abschnitt? Meinst du die zweite Wertezeile?

Die soll einfach jeweils, wie ich schrieb: Werte mit dazu gepackt werden.

- Die Bearbeiteten Daten jeder .csv - Datei kommt in eine neue Zeile (Daten können aber mehrere Zeilen beanspruchen)

- Der Dateiname soll in der 1. Spalte stehen

( X kann Werte von: 1-20 annehmen)

- [LK_X_X] + Spalte mit Werten (LK_1_1, LK_1_2, ... stehen in einer Spalte )

- [LK_X_X] + passende [Metastase_LK_X_X] = Extraspalte: 1
- [LK_X_X] + keine passende [Metastase_LK_X_X] = Extraspalte: 0

(Metastase_LK_1_1 , Metastase_LK_1_2, Metastase_LK_1_3)

- Dahinter Summe aller [LK_X_X_F] + Extraspalte mit den Einzelnamen (LK_1_1_F usw. Z.B. 16, wenn es LK_1_1_K_1 .... LK_1_1_K_16 in der Quelldatei steht.)

- Summe aus [LK_X_X_K] + Extraspalte mit den Einzelnamen (LK_1_1_K)

- Summe aus [LK_X_X_K_X_R] + Extraspalte mit den Einzelnamen (LK_1_1_K_1_R)

- Summe aus [LK_X_X_NK] + Extraspalte mit den Einzelnamen + Extraspalten mit entsprechenden Werten (LK_1_1_NK)









Zitat:

Zitat von Bjoerk (Beitrag 1299964)
Es gibt zwei Abschatte (Annotations):
Code:
Name;Perimeter;Area
und
Code:
Length (µm);;
Ist das in jeder Datei so?

ABER: Wenn die Daten anders vorliegen sollen, oder immer an der gleichen Stelle ein "Name;Perimeter;Area und Length stehen soll, dann sage ich das meinem Kumpel. Dann muss er sich halt hinsetzen und diese Stellen mit 00000 füllen.

Vielen Dank für die Hilfe

Popov 1. Mai 2015 21:22

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
@Dade

1.) Du arbeitest sehr kontraproduktiv (für dich).

Man muss dir alles aus der Nase ziehen. Bis man endlich weiß was du haben willst sind entweder a.) Tage vergangen oder b.) man hat die Lust verloren.

2.) Du tust wenig um die Arbeit zu beschleunigen oder zu vereinfachen.

Betrachte mal die TAG-Buttons oben über dem Textfeld. Da hätten wir zuerst die Grundformatierungsfunktionen wie Fett, Kursiv, Unterstrichen. Dann die Ausrichtung der Zeile. Dann gibt es die geordnete wie auch die ungeordnete Liste, sowie Einzug.

Gehen wir weiter, denn nun wird es interessant: wir haben das ein Zitat-Tag-Button. Damit können wir einen Textbereich schnell und leicht als Zitat anzeigen. Wunderbar ist auch der Code-Tag. Der sorgt dafür, dass Daten mit gleicher Buchstabenbreite angezeigt werden. Für Daten wie du sie hier ständig lieferst geradezu prädestiniert. Und natürlich der Delphi-Tag. Etwas höher gibt es da noch eine Schriftgröße und sogar Farben.

Hättest du dich fünf Minuten hingesetzt und dein Problem anschaulich gepostet, vermutlich hätten mehr Leute auf deine Problem eingegangen. Aber du kopierst Textbereiche und klatscht sie einfach hier unformatiert und unkommentiert rein. Wer will soll bitte fragen.

3.) Wer ist es der hier ein Problem gelöst haben will? Du oder die Anderen?

Wenn du etwas willst, dann solltest du schnell lernen, dass wenn andere sich die Zeit nehmen, auch die etwas Zeit investieren solltest. Mit der Zeit meine ich, dass es in deinem Interesse liegt wenn man dein Problem versteht.

Denn so wie es aussieht ist es ein simpler Parser den du brauchst. Das ist in einer halben Stunde programmiert. Aber du hast dich entschlossen mit dein Problem mit Minimalaufwand zu lösen. Das beste Beispiel ist, dass deine Anleidung
Zitat:

Quelldateien und Ziel - EXCEL Tabelle befinden sich hier: (unter Beispiel)
...
Nichtssagend ist. Man versteht sie erst nur wenn man weiß um welche Buchsteben es geht. In der Dockdatei, die man erst herunterladen muss und was viele garantiert nie machen werden, sind die Buchstaben fett markiert. Was du gepostet hast ist die Bits nicht wert. Man versteht die Aufgabe nicht ohne die Originaldatei zu lesen. Du hättest aber genauso einfach den Test als Zitat formatiert anbieten können. Beispiel:
Zitat:

Fallnummer Lymphknoten: Dies ist der Name der Csv Datei, z.B LU 39893_12_1A

Lymphknotennummer: Dies ist die LK Nummer der verschiedenen LK’s in einer einzelnen Csv, bsp. LK_1_1 oder LK_1_2 bzw. LK_1, LK_2 oder LK_3 dies variiert in jeder Datei. Dies hängt davon ab ob von einem LK mehrere Schnitte (LK_1_1 oder LK_1_2) auf einem Objektträger oder verschiedene LK’s (LK_1, LK_2 oder LK_3) fixiert sind.

Anzahl der Follikel: Dies ist die Summe der Follikel in LK_1 bzw. LK_1_1. Die Follikel sind gekennzeichnet als LK_1_1_F _1

Keimzentren vorhanden ja=1, nein=0: Keimzentren sind als LK_1_K_ gekennzeichnet

...
Aber du macht dir keine Arbeit, warum sollte sich jemand anders die Arbeit machen?

Bjoerk 1. Mai 2015 22:13

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
OK. Sorry Bud, aber das ist mir für lau echt zu aufwendig. Normalerweise fragt man hier im Forum eher <wie soll ich dies oder das machen> und nicht <kann das jemand für mich erledigen>? Ich selbst nehme keine Projekte an aber vielleicht stellt dein Kumpel hier mal eine Anfrage rein. Wird sich bestimmt jemand finden der es gegen Bezahlung übernimmt? Unter Umstanden wäre es auch einfacher die Daten mit einem Makro nach SPSS zu importieren.

LG
Thomas

p80286 2. Mai 2015 00:13

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Bisher habe ich nur mitgelesen, aber langsam schwillt mir der Hals.
a) es gibt mehrere .CSV Dateien, die drei Spalten enthalten. Jede Spalte enthält Daten zu einem spezifischen Sachverhalt
b) es gibt mehrere .CSV Dateien, die eine unterschiedliche Anzahl Spalten enthalten, wobei die Anzahl Spalten jeweils mit gleichen Inhalten korrespondieren.
c) es gibt mehrere .CSV Dateien, die eine unterschiedliche Anzahl Spalten mit unterschiedlichen Sachverhalten enthalten.

a) Füge eine Spalte mit dem Dateinamen ein, fertig.
b) trenne die Daten nach Sachverhalt auf und füge jeweils eine Spalte mit dem Dateinamen ein.
c) 42

Was ich bisher gelesen habe, scheint sehr für c) zu sprechen. der erste Schritt wäre es, zunächst einmal die vorliegenden Daten in eine "Normalform" zu bringen.

Gruß
K-H

Dade 2. Mai 2015 03:41

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Zitat:

Zitat von Popov (Beitrag 1299969)
@Dade

1.) Du arbeitest sehr kontraproduktiv (für dich).

Man muss dir alles aus der Nase ziehen. Bis man endlich weiß was du haben willst sind entweder a.) Tage vergangen oder b.) man hat die Lust verloren.

Das tut mir leid. Dies liegt aber auch sehr daran, dass ich selbst mit der Komplexität hadere. Ich werde es versuchen besser zu machen.

Zitat:

2.) Du tust wenig um die Arbeit zu beschleunigen oder zu vereinfachen.

Betrachte mal die TAG-Buttons oben über dem Textfeld. Da hätten wir zuerst die Grundformatierungsfunktionen wie Fett, Kursiv, Unterstrichen. Dann die Ausrichtung der Zeile. Dann gibt es die geordnete wie auch die ungeordnete Liste, sowie Einzug.

Gehen wir weiter, denn nun wird es interessant: wir haben das ein Zitat-Tag-Button. Damit können wir einen Textbereich schnell und leicht als Zitat anzeigen. Wunderbar ist auch der Code-Tag. Der sorgt dafür, dass Daten mit gleicher Buchstabenbreite angezeigt werden. Für Daten wie du sie hier ständig lieferst geradezu prädestiniert. Und natürlich der Delphi-Tag. Etwas höher gibt es da noch eine Schriftgröße und sogar Farben.

Hättest du dich fünf Minuten hingesetzt und dein Problem anschaulich gepostet, vermutlich hätten mehr Leute auf deine Problem eingegangen. Aber du kopierst Textbereiche und klatscht sie einfach hier unformatiert und unkommentiert rein. Wer will soll bitte fragen.
Da hast du absolut Recht. Wenn ich ehrlich bin, dann muss ich gestehen, dass ich mich noch nie in Foren mit einer Textformatierung beschäftigt habe. Ich werde aber mein Problem versuchen anschaulich zu präsentieren.

Zitat:

3.) Wer ist es der hier ein Problem gelöst haben will? Du oder die Anderen?

Wenn du etwas willst, dann solltest du schnell lernen, dass wenn andere sich die Zeit nehmen, auch die etwas Zeit investieren solltest. Mit der Zeit meine ich, dass es in deinem Interesse liegt wenn man dein Problem versteht.

Denn so wie es aussieht ist es ein simpler Parser den du brauchst. Das ist in einer halben Stunde programmiert. Aber du hast dich entschlossen mit dein Problem mit Minimalaufwand zu lösen. Das beste Beispiel ist, dass deine Anleidung
Zitat:

Quelldateien und Ziel - EXCEL Tabelle befinden sich hier: (unter Beispiel)
...
Nichtssagend ist. Man versteht sie erst nur wenn man weiß um welche Buchsteben es geht. In der Dockdatei, die man erst herunterladen muss und was viele garantiert nie machen werden, sind die Buchstaben fett markiert. Was du gepostet hast ist die Bits nicht wert. Man versteht die Aufgabe nicht ohne die Originaldatei zu lesen. Du hättest aber genauso einfach den Test als Zitat formatiert anbieten können. Beispiel:
Zitat:

Fallnummer Lymphknoten: Dies ist der Name der Csv Datei, z.B LU 39893_12_1A

Lymphknotennummer: Dies ist die LK Nummer der verschiedenen LK’s in einer einzelnen Csv, bsp. LK_1_1 oder LK_1_2 bzw. LK_1, LK_2 oder LK_3 dies variiert in jeder Datei. Dies hängt davon ab ob von einem LK mehrere Schnitte (LK_1_1 oder LK_1_2) auf einem Objektträger oder verschiedene LK’s (LK_1, LK_2 oder LK_3) fixiert sind.

Anzahl der Follikel: Dies ist die Summe der Follikel in LK_1 bzw. LK_1_1. Die Follikel sind gekennzeichnet als LK_1_1_F _1

Keimzentren vorhanden ja=1, nein=0: Keimzentren sind als LK_1_K_ gekennzeichnet

...
Aber du macht dir keine Arbeit, warum sollte sich jemand anders die Arbeit machen?
[/QUOTE]

Ich hatte gedacht es wäre viel zu unübersichtlich, wenn ich die komplette Ziel - Excel - Datei hier poste. Auch habe ich versucht die Schritte in eigenen Worten darzustellen. Ich werde im folgenden Versuchen den Sachverhalt (mit viel Mühe) darzustellen. Ist ist aber echt kompliziert, wie ich finde, das macht es so schon schwer. Daher bitte ich um Nachsicht.

Also noch einmal komplett:






Für ein Projekt muss ich ca. 1500 csv - Dateien verarbeiten. Diese wurden mit einem Spezialprogramm erstellt und sind im Aufbau festgelegt.

Sie sollen Analysiert und in anderer Form als EXCEL Tabelle gespeichert werden.
Alleine schaffe ich das nicht, da ich Anfänger bin, aber das Projekt zeitnah schaffen muss. Per Hand ist das leider aussichtslos.



Hier ein paar Infos:



- Ursprungsdatei enthält immer drei Spalten

- Alle drei Spalten sind unterschiedlich lang

1. Zeile
- in der 1. Spalte/1. Zeile steht immer: Annotations

2. Zeile
- in der 1. Spalte/2. Zeile steht immer: Name, in der 2. Spalte/2. Zeile steht immer:Perimeter (µm), in der 3. Spalte/2. Zeile steht immer: Area (µm2)

3. Zeile
- ab der 3. Zeile beginnen die eigentlichen Daten
- Die 3. Zeile/ 1. Spalte enthält Buchstaben/Zahlen Kombinationen, die das Vorhandensein verschiedener Körperzellen kodieren.

Diese Werte können Vorkommen:
( X kann Werte von: 1-20 annehmen)

[LK_X] z.B. LK_1, LK_2 Dies ist der Lymphknoten_1

[LK_X_X] z.B. LK_1_1, LK_1_2 Dies ist der Lymphknoten Nr. 1_1

[LK_X_X_X] z.B. LK_1_1, LK_1_2 Dies ist der Lymphknoten Nr. 1_1

[LK_X_F] z.B. LK_1_F Dies ist der entsprechende Follikel

[LK_X_X_F] z.B. LK_1_1_F Follikel des Lymphknoten_1_1

[LK_X_X_X_F] z.B. LK_1_1_F Follikel des Lymphknoten_1_1

[LK_X_K_X] z.B. LK_1_K Keimzentrum des Lymphknotens

[LK_X_X_K_X] z.B. LK_1_1_K Keimzentrum des Lymphknotens

[LK_X_X_X_K_X] z.B. LK_1_1_1_K Keimzentrum des Lymphknotens

[LK_X__K_R] z.B. LK_1_R_1 Lymphknoten mit regressiven, hyalinisierten Keimzentren (RHK)

[LK_X_X_K_R] z.B. LK_1_1_R_1 Lymphknoten mit regressiven, hyalinisierten Keimzentren (RHK)

[LK_X_X_X_K_R] z.B. LK_1_1_1_R_1 Lymphknoten mit regressiven, hyalinisierten Keimzentren (RHK)

[Metastase_LK_X] z.B. Metastase_LK_1 Lymphknoten_1 enthält Metastase

[Metastase_LK_X_X] z.B. Metastase_LK_1_1 Lymphknoten_1_1 enthält Metastase

[Metastase_LK_X_X_X] z.B. Metastase_LK_1_1_1 Lymphknoten_1_1_1 enthält Metastase



Nennen wir diese Spaltenwerte VARIABLE: VarLymph

3. Zeile/2. Spalte: (3z/1s) Perimeter (µm) VarUmfang
3. Zeile/3. Spalte: (3z/3s) Area (µm2) VarFläche





Bearbeitungsprozess der Daten und Abspeichern als EXCEL Tabelle
Jeweils soll pro .csv - Quelldatei ein Block von LK_X, darunter LK_X_X, darunter LK_X_X_X entstehen. Passend dazu soll jeweils der LK_X_F, darunter LK_X_X_F, darunter LK_X_X_X_F stehen. Passend dazu in einer anderen Spalte: LK_X_R_X, LK_X_X_R_X, darunter LK_X_X_X_R_X

Jeder Lymphknoten hat eine feste Nummer. (z.B. LK_1_1). Korrespondierend soll in der identischen Zeile auch LK_1_1_F und LK_1_1_K_X stehen.


1. Spalte: Fallnummer Lymphknoten: Dateiname
2. Spalte: Lymphknotennummer: Inhalt: "VarLymph" (untereinander), wenn Lk_X
3. Spalte: Follikelnummer: Inhalt: "VarLymph" (untereinander) alle Lk_X_F / LK_X_X_F / LK_X_X_X_F
5. Spalte: Umfang Follikel: Inhalt VarUmfang
6. Spalte: Fläche Follikel: Inhalt VarFläche
4. Spalte: Anzahl der Follikel: Auftrittsanzahl der Lymphknoten mit Follikeln (alle Lk_X_F / LK_X_X_F / LK_X_X_X_F
5. Spalte: Keimzentren vorhanden ja=1, nein=0: Wenn irgend ein LK_X_K, LK_X_X_K, LK_X_X_X_K -> ja, sonst nein
6. Spalte: Anzahl der Keimzentren: Auftrittsanzahl der Lymphknoten mit Keimzenren (alle Lk_X_K / LK_X_X_K / LK_X_X_X_K)
7. Spalte: Anzahl der regressiven, hyalinisierten Keimzentren (RHK): Auftrittsanzahl der Lymphknoten mit RHK (alle Lk_X_K_R / LK_X_X_K_R / LK_X_X_X_K_R)
8. Spalte: Metastase: Alle VarLymph mit "Metastase" im Namen: Metastase_LK_X, Metastase_LK_X_X
9. Spalte: Umfang Metastase: Umfang der Metastase VarUmfang
10. Spalte: Fläche Metastase: Fläche der Metastase VarFläche
11. Spalte: Follikelnummer: Alle VarLymph mit F im Namen, wie LK_X_F, LK_X_X_F, LK_X_X_X_F
12. Spalte: Umfang Follikel: Umfang Follikel VarUmfang
13. Spalte: Fläche Follikel: Fläche Follikel VarFläche
14. Spalte: Keimzentrumsnummer: Alle VarLymph mit F im Namen, wie LK_X_K, LK_X_X_K, LK_X_X_X_K, LK_X_K_R, LK_X_X_K_R, LK_X_X_X_K_R
15. Spalte: Umfang Keimzentrum: Umfang Keimzentrum VarUmfang
16. Spalte: Fläche Keimzentrum: Fläche KeimzentrumVarFläche


Hier sind Beispieldateien: Quell -> Ziel - Beispiele


https://www.dropbox.com/sh/blbndn594...t68a?dl=0&s=sl


Das müsste es sein. Ich hoffe sehr, dass es verständlich ist. Was meint ihr?

mschaefer 2. Mai 2015 09:39

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Moin zusammen,

Ja könnte man was mit Delphi stricken. Kleines Frontend mit Sqlite als Datenbank. Import in DBGrid. Etwas SQL und das ganze wieder in csv speichern. Man sollte es aber besser lassen, denn als nächste Aufgabe kommt mit an signifikanter Wahrscheinlichkeit die statistische Auswertung der Daten dran. Dann kann man es auch gleich sturmfest machen. Das ist eine typische Aufgabe für SAS, R, SPSS und Co. Da ich neben Delphi, SAS als mein Steckenpferd betrachte einige Hinweise dazu:

Download der SAS University Edition
SAS-Skript der LMU

Dann etwas in proc Import, Data-Step, proc sort und proc Export einlesen, eventuell Makro.
Noch geht die Aufgabenstellung hier locker mit Pascal, aber spätestens wenn es an die Statistik geht programmiert man sich einen "Wolf".


Grüße aus der Stadt an der Leine // Martin

Dade 2. Mai 2015 09:41

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Keine Sorge, die Statistik macht ein Statistiker, der die Daten sortiert bekommen möchte.

Martin, du scheinst echt Ahnung zu haben. Das finde ich sehr beeindruckend. Ich bin leider seit Pascal -damals- völlig raus aus dem Programmieren. Jetzt natürlich von Nachteil....daher bin ich auf Profis angewiesen.


Danke für die Tipps zu SAS. Sieht interessant aus, aber macht auf mich den Eindruck eines Statistikprogramms.

jobo 2. Mai 2015 10:00

AW: .csv Datei einlesen, analysieren und bearbeitet abspeichern.
 
Zitat:

Zitat von Dade (Beitrag 1299977)
Das müsste es sein. Ich hoffe sehr, dass es verständlich ist. Was meint ihr?

Dade, leider hast Du noch nicht verraten, warum das alles auf Dropbox bereitgestellt wird. Es wurde schon angemerkt, dass die Bereitschaft der Forenmitglieder dort rumzustöbern relativ gering sein dürfte. Aber das nur am Rande.

Was ich an der gesamten Anforderung nicht verstehe, ist die Maßgabe, csv Dateien in Exceldateien zu "konvertieren", damit sie mittels irgendeines Statistikprogramms untersucht / aufbereitet werden können. Was aber das "Ergebnis" des "Imports" hier scheinbar darstellt, ist bereits eine (erhebliche) Aufbereitung bzw. Auswertung der CSV Rohdaten!
Ist es so oder sehe ich das falsch?
Wenn es so ist, würde das bedeuten, dass die wissenschaftliche Arbeit auf Daten aufsetzt, die mittels der Handarbeit irgendeines Hiwis oder Forenmitglieds vorverarbeitet wurden, um es mal wertneutral auszudrücken. Es würde außerdem bedeuten, dass hier nicht von einem Import/Export die Rede ist, sondern von Datenverarbeitung bzw. Reporting, das vom Ansatz her nicht unbedingt geeignet ist, per prozeduraler Sprache umgesetzt zu werden. Was dann auch teilweise die "Komplexität" des Problems und Verwirrung allerseits erklären würde.
Vielleicht kannst Du das gedachte Vorgehen noch einmal verdeutlichen, nicht Quell und Zielformat.

Ich stelle mir das so vor (hab noch keine Doktorarbeit geschrieben):
Irgendeine arme Wurst produziert mittels Point and Click Messdaten aus tausenden von Bildern.
Das Programm spukt die Messdaten (Rohdaten) in einem etwas unpraktischen Format aus.
Alle Messdatendateien müssen nun eingelesen werden und den Dateinamen als Datenmerkmal erhalten.
Die Gesamtdaten müssen nun statistisch, wissenschaftlich aufbereitet und untersucht werden.
Dazu wird ein Statistikprogramm verwendet, das scheinbar nur Exceldaten lesen kann.
Die Aufbereitung der Daten (Plausibilisierung, Bereinigung, Analyse, Statistik) erfolgt in dem Statistikprogramm durch den Doktoranden oder einen wissenschaftlichen Mitarbeiter.

Die Aufgabe hier würde also lauten:
1500 CSV Dateien um den Dateinamen anreichern als Merkmal anreichern und zu einer Excelliste zusammenfassen.
Fertig.

Was meinst Du?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:24 Uhr.
Seite 1 von 2  1 2      

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