AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Delphi Tabelle als txt speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi Tabelle als txt speichern

Ein Thema von Bedrock · begonnen am 29. Mai 2003 · letzter Beitrag vom 1. Jun 2003
Antwort Antwort
Seite 2 von 2     12   
Bedrock

Registriert seit: 11. Apr 2003
20 Beiträge
 
#11
  Alt 30. Mai 2003, 14:06
Das mit loadfromfile und savetofile ist mir klar.

Aber wie geb ich das korrekte Fel1, Feld2 .. an?

Ich meine irrgentwo muss ich ja sagen aus welcher tabelle er das nehmen soll.
Oder nicht?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#12
  Alt 30. Mai 2003, 14:56
na gut, noch ein Beitrag von mir zu diesem "Blindenthread". 8)
Ihr habt nämlich das assign vergessen, bitte in Hilfe nachlesen:

Code:
procedure TForm1.CreateBtnClick(Sender: TObject);
var d : text;
begin
Table1.First;
AssignFile (d,'d:\SMS Alarmierung\SAT_Datenbank.dbf');
rewrite (d);
Repeat
  WriteLn (d, table1.text.AsString, tabele1Alarm.AsString, ...);
  Table1.Next;
Until Table1.Eof;;
close (d);
so sollte es gehen. Der Variablen d wird mit Assign ein physikalischer Platte-Dateiname zugeordnet.
Gruß
Hansa
  Mit Zitat antworten Zitat
Bedrock

Registriert seit: 11. Apr 2003
20 Beiträge
 
#13
  Alt 30. Mai 2003, 15:11
Danke schon mal
aber

bei var d : text;
[Fehler] SAT_Datenbank.pas(55): Konstante oder Typenbezeichner erwartet

??
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#14
  Alt 30. Mai 2003, 15:25
textfile
Gruß
Hansa
  Mit Zitat antworten Zitat
Bedrock

Registriert seit: 11. Apr 2003
20 Beiträge
 
#15
  Alt 30. Mai 2003, 15:46
Alles klar.

Kann mir aber jemnd noch vollgende Zeile erkären?

WriteLn (Datei, TabelleFeld1.AsString, TabelleFeld2.AsString, ...);
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#16
  Alt 30. Mai 2003, 16:43
Zitat von Bedrock:
Kann mir aber jemnd noch vollgende Zeile erkären?
Datei ... ist das mit Assign zugeweisene Taxtfile @Hansa: Das assign habe ich nicht vergessen. Das habe ich genauso als bekannt vorausgesetzt wie das Table.Open!
TabelleFeld1 ... Das sind Bezeichner für die einzelnen Tabellenspalten und enthalten jeweils den Wert des aktuellen Datensatzes! Wenn Du auf ein TTable doppelt klickst, dann öffnet sich der Felder-Editor. Anschließend rechte Maustaste und alle Felder hinzfügen und schon hats Du die entsprechenden Variablen.
AsString ... Liefert als Ergebnis den aktuellen Wert des Feldes als Zeichenkette.
WriteLn ... schreibt die Zeile irgenwohin (hier in eine Datei) mit abschließendem Zeilenumburch!
  Mit Zitat antworten Zitat
Bedrock

Registriert seit: 11. Apr 2003
20 Beiträge
 
#17
  Alt 30. Mai 2003, 16:54
OK habs gescheckt. Mercy

Habe vollgende Lösung
Delphi-Quellcode:
procedure TForm1.CreateBtnClick(Sender: TObject);

begin
Screen.Cursor:= crHourGlass;
Table1.First;
memo.Clear;
CreateBtn.Enabled:= false;
repeat
Memo.Lines.Add (table1.Fields[0].AsString + table1.Fields[1].AsString + table1.Fields[2].AsString + table1.Fields[3].AsString + table1.Fields[4].AsString + table1.Fields[5].AsString + table1.Fields[6].AsString + table1.Fields[7].AsString + table1.Fields[8].AsString + table1.Fields[9].AsString + table1.Fields[10].AsString);
Table1.Next;
Until Table1.Eof;;
begin
Memo.Lines.SaveToFile('d:\Sms Alarmierung\SAT.txt');
Screen.Cursor:= crDefault;
CreateBtn.Enabled:= true;

    end;
end;

Kann mir noch jemand sagen wie ich die Spaltenbezeichnung einfügen kann.

Danke für die Hilfe
Gruß Bedrock
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#18
  Alt 30. Mai 2003, 17:10
Zitat von Bedrock:
Kann mir noch jemand sagen wie ich die Spaltenbezeichnung einfügen kann.
Wo?
  Mit Zitat antworten Zitat
Bedrock

Registriert seit: 11. Apr 2003
20 Beiträge
 
#19
  Alt 30. Mai 2003, 17:47
Hat sich auch schon erledigt danke.

Hab aber noch ein anderes Anliegen.

Wie kann ich aus der Datenbank Zeilen vergleichen??

Bsp.:
eine Datenbank Zeile sieht bei mir so aus

SMS Text Alarm Gruppe1 Gruppe2 Gruppe3 Gruppe4
M1 Synpol Störung 0 1 0 0 0

Der SMS Text ist ja klar. der Text der als SMS versendet wird.

Alarm, Gruppe1, ... ist dazu da das die Meldung an verschidene Nummern versendet wird.

Das heist bei Gruppe1 = 1 Meldung wird an Grupp1 versendet
Gruppe2=1 Gruppe3=1 Meldung an Gruppe2+3

eine 0 bedeutet das die Meldung an die Gruppe nicht weitergeleitet wird.

Nun möcht ich gerne eine Kontrolle durchführen das wenn überall eine Null drinn steht. ich ein Hinweis in eine Memo bekomme.
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#20
  Alt 1. Jun 2003, 10:33
Hallo Bedrock,

in meinem Code Schnipsel, den du bisher ja vollkommen ignoriert hast , sind die Datenfelder durch Semikolons getrennt, das hätte die Suche vereinfacht. Die Schleife hätte dir auch Schreibarbeit gespart.
Vielleicht noch folgender Hinweis: eine repeat - until Schleife sollte man nur benutzen, wenn die Schleife midestens einmal durchlaufen werden soll. Wenn die Tabelle leer ist, funktioniert dein Code nicht, deshalb solltest du unbedingt eine While-Schleife benutzen.

So, nun zu deiner neuen Frage:

Als erstes musst du die Stelle finden, ab der die Ziffern losgehen. Wenn ich deine Ausfführungen korrekt verstanden habe, steht vor den Gruppen immer das Wort "Alarm". Falls das stimmt, funktioniert der folgende Code (aber auch nur, wenn das Wort Alarm nicht in der SMS vorkommt [ansonsten musst du das Wort "Alarm" sooft suchen, bis du das letzte Vorkommen gefunden hast, da du das Leerzeichen als Trennungszeichen benutzt hast])

Delphi-Quellcode:
  { In Zeile steht die zuletzt gelesene Zeile }
  posi := Pos('Alarm', zeile);
  { Jetzt kannst du über Copy(zeile, posi+6, 1) z.B. auf die erste Ziffer zugreifen }
  try
    grp1 := StrToInt(Copy(zeile, posi+6, 1));
    grp2 := StrToInt(Copy(zeile, posi+8, 1));
    ...
  except
    on exception do
      { Fehlermeldung ausgeben }
  end;
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 10:27 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