Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Hilfe- Wie lese ich eine komplexe DB Datei zum editieren aus (https://www.delphipraxis.net/94130-hilfe-wie-lese-ich-eine-komplexe-db-datei-zum-editieren-aus.html)

DGL-luke 16. Jun 2007 23:03

Re: Hilfe- Wie lese ich eine komplexe DB Datei zum editieren
 
Hm. Sollte das nicht der Registrierungsexperte erledigen?

mkinzler 16. Jun 2007 23:05

Re: Hilfe- Wie lese ich eine komplexe DB Datei zum editieren
 
Zitat:

Zitat von DGL-luke
Hm. Sollte das nicht der Registrierungsexperte erledigen?

Den gab es zu Zeiten von D6 noch nicht. da mußte man sich manuell über die Homepage registrieren.

Black07 16. Jun 2007 23:13

Re: Hilfe- Wie lese ich eine komplexe DB Datei zum editieren
 
Der Registierungagent der auf der D6 CD dabei ist scheint nicht mehr sehr compatibel zusein

Die Seiten die er öffnen will existieren garnicht mehr.

Und diese ver***** Updates gibt es nur exklusiv über Codegear -
Zumindest finde ich keine andere Seite, D6 die die Updates hostet.

habe zwar die Seriennummer und den Autorisierungsschlüßel nur was nutzt der mir.

Gehstock 17. Jun 2007 00:09

Re: Hilfe- Wie lese ich eine komplexe DB Datei zum editieren
 
Google Suche findet einen FTP der aber ausgerechnet die Version 6 nicht hat

Black07 17. Jun 2007 00:28

Re: Hilfe- Wie lese ich eine komplexe DB Datei zum editieren
 
So

habe soeben einen Server in Taiwan gefunden der das Update 2 drauf hatte.

Denn auf dieser seite steht der genaue Dateiname der Delphi-Updates und google übernahm dann den Rest http://info.borland.com/techpubs/del...dates/per.html


Installation verlief ohne Probs und JVCL ist nun auch drauf.

Dann will ichs mal jetzt versuchen, also


Zitat:

TJvCSVDataSet auf deine Form ziehen, Datei auswählen, Feldstruktur festlegen, öffnen.

Black07 17. Jun 2007 00:38

Re: Hilfe- Wie lese ich eine komplexe DB Datei zum editieren
 
Sorry aber TJvCSVDataSet finde ich nicht


ist da was schiefgelaufen? habe nun Leisten JV Scrollbar, Jv Edits ,... und wo drunter soll nun das TJvCSV sein?

Black07 17. Jun 2007 01:18

Re: Hilfe- Wie lese ich eine komplexe DB Datei zum editieren
 
Delphi-Quellcode:
 
    JvCSVBase1: TJvCSVBase;
    JvCSVEdit1: TJvCSVEdit;
    JvCSVComboBox1: TJvCSVComboBox;
    JvCSVCheckBox1: TJvCSVCheckBox;
    JvCSVNavigator1: TJvCSVNavigator;
Habe nun etwas gefunden aber kein TJvCSVDataSet

alzaimar 17. Jun 2007 08:09

Re: Hilfe- Wie lese ich eine komplexe DB Datei zum editieren
 
Also, ich versteh nicht, wieso man das mit einer CSV-Komponente machen soll.

Das vorliegende Format ist das einer 'INI'-Datei. Man kann eine entsprechnde Komponente verwenden (TIniFile, TMemIniFile), wenn man Zugriff auf die einzelnen Segmente '[blabla]' haben möchte. Wenn nicht, reicht auch eine Stringlist.

Für die Trennung der per ';' getrennten Daten würde ich auf die Eigenschaften 'DelimiterChar' und DelimitedText der TStringlist zurückgreifen.

Einlesen der Datei geht so:
Delphi-Quellcode:
Var
  Datei : TStringlist;

Begin
  Datei := TStringlist.Create;
  Datei.LoadFromFile('DeinDateiname');
...
Suchen geht so:
Delphi-Quellcode:
Procedure SucheNamenBeginnendMit (Datei : TStringlist; NamensTeil : String);
Var
  i : Integer;

Begin
  For i:=0 to Datei.Count - 1 do
    If Pos (NamensTeil, Datei[i])<>0 Then
       // Zeile gefunden
End;
Und unterteilen der durch Semikolon getrennten Teile so:
Delphi-Quellcode:
Procedure ExtrahiereDaten (Datei : TStringList; aZeile : Integer; DatenEinerZeile : TStringlist);
Begin
  DatenEinerZeile.DelimiterChar := ';';
  DatenEinerZeile.DelimitedText := Date.Values[aZeile]
// Anschließend kann auf die Teile durch DatenEinerZeile[i] zugegriffen werden
End;
Da wird kein CSV benötigt.

Black07 17. Jun 2007 12:49

Re: Hilfe- Wie lese ich eine komplexe DB Datei zum editieren
 
Zitat:

Zitat von alzaimar
Also, ich versteh nicht, wieso man das mit einer CSV-Komponente machen soll.

Das vorliegende Format ist das einer 'INI'-Datei. Man kann eine entsprechnde Komponente verwenden (TIniFile, TMemIniFile), wenn man Zugriff auf die einzelnen Segmente '[blabla]' haben möchte. Wenn nicht, reicht auch eine Stringlist.

Für die Trennung der per ';' getrennten Daten würde ich auf die Eigenschaften 'DelimiterChar' und DelimitedText der TStringlist zurückgreifen.


Da wird kein CSV benötigt.

__________________________

Bin diesem Vorschlag mal gefolgt


Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var
  Datei : TStringlist;
   mecount : integer;
   i : Integer;
begin
   Datei := TStringlist.Create;
  memo1.WordWrap:=false;
  memo1.Lines.LoadFromFile('C:\test\text.ini');
  mecount:=0;
  mecount:=(memo1.Lines.count);
end;



procedure TForm1.Button2Click(Sender: TObject);
var
 ii : Integer;
begin
For ii:=0 to memo1.Lines.Count - 1 do
      begin
        If leftstr(memo1.Lines[ii],6)='INFO_S' then
          begin
           listbox1.Items.Add(memo1.Lines.Strings[ii])
          end

    else
    end;
end;
Damit bekomme ich die Daten (hier nur eine Suchanfrage) grob auseinander sortiert anhand der z.B. ersten 6 Zeichen.

Nur kann mir jedmand sagen wie genau ich nun die durch die ";" getrenten Daten im String finde und einzeln aus dem String herausbekommen.

Die Daten in der listbox sehen so aus:

Zitat:

INFO_SKAM320060421120523_2=haus .;;4578?.;;garten, ja!;;zu räumen.;;él.;
INFO_SKAM320060421121039=That thing ;;Sure?;;Nein .;;444;;¿-?;
INFO_SKAM3=JA.;;88888;;Korrekt.;;Für.;.;.;
INFO_SKAM30=Take back .;;777.;;+65.;;Bring zurück.;zu .;8542.;
und sollen - sagen wir mal auf 10 Editfelder verteilt werden.


"..." bis = Edit1
von = "..." bis ;#1 = Edit1
von ;#1 "..." bis ;#2 = Edit1
...
von ;#9 "..." bis ;#10 = Edit1

Wie / Womit müsste ich eine Abfrage Routine schreiben

alzaimar 17. Jun 2007 13:11

Re: Hilfe- Wie lese ich eine komplexe DB Datei zum editieren
 
Delphi-Quellcode:
Function Split (Var aString : String; Const aDelimiter : String) : String;
Var
  p : Cardinal;

Begin
  p := pos (aDelimiter, aString);
  if p = 0 then begin
     Result := aString;
     aString :='';
  End Else Begin
    Result := Copy (aString,1,p-1);
    aString := Copy (aString, p+Length (aDelimiter),Maxint)
  End
End;

// Aufruf

  s := 'Eins=Zwei';
  x := Split (s,'=');
// jetzt ist x='Eins' und s='Zwei'
[/edit]
:oops: Parameterdeklaration ': String' bei 'Var aString ...' eingefügt. So KANN das ja gar nicht funktionieren....
[edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:42 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz