Autor Beitrag
noobie123
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 29



BeitragVerfasst: Di 23.06.09 11:35 
hallo, ich bin dabei eine art telefonverz. zu machen, allerdings für das büro.
ich kann mitarbeiter erfassen, abspeichern und wieder laden (mittels INI).
Unsere Mitarbeiter sind in diverse Gebiete unterteilt. Diese Gebieten bezeichnet man hier zum Glück in Zahlen, zb 1-10.

Arbeitsbereich P01 / Herr Alfred / Tel xxxx / Fax xxxx / Gebiet 1-10 / Gebiet 51 -59 / Gebiet 76-85
Arbeitsbereich P02 / Herr Donner / Tel xxxx / Fax xxxx / Gebiet 11-20 / Gebiet 25-50 / Gebiet 60-70
Arbeitsbereich P03 / Herr Fuchs / Tel xxxx / Fax xxxx / Gebiet 21-24 / Gebiet 71-75 / Gebiet 86-100
usw.

Jeder Wert wurde in eine ini gespeichert.
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
[P01]
Name=Herr Alfred
Tel=xxxx
Fax=xxxx
GebietA=1
GebietB=10

die werte werden über ein editfed angezeigt.

nun möchte ich eine Abfrage einbauen!
Mittels eingabe eines Gebietes, zb. bei Eingabe von "8", soll mir Herr Alfred mit telefon usw. angezeigt werden.
Bei Eingabe von "23" soll mir Herr Donner angezeigt werden mit telefon usw..

An Case hatte ich auch schon gedacht, allerdings wechseln die gebiete, d.h. diese sind genauso variabel wie "telefon" oder "Fax".

Anbei ein beispiel bild.


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 23.06.2009 um 12:57
Einloggen, um Attachments anzusehen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 23.06.09 11:50 
Naja, du musst doch nur die Werte auslesen und nachschauen ob der eingegebene Wert in dem Bereich liegt. :nixweiss:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
StartValue  := Ini.ReadInteger(...);
EndValue := Ini.ReadInteger(...);
if (CurrentValue >= StartValue) and (CurrentValue <= EndValue) then
  ...
Wobei CurrentValue natürlich der eingegebene Wert ist.
noobie123 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 29



BeitragVerfasst: Mi 24.06.09 14:58 
mh, danke klappt soweit ganz gut

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
StartValue0001  := StrToInt(IniVTB.ReadString(.......));
EndddValue0001  := StrToInt(IniVTB.ReadString(.......));
StartValue0002  := StrToInt(IniVTB.ReadString(.......));
EndddValue0002  := StrToInt(IniVTB.ReadString(.......));


if (SuchWert >= StartValue0001) and (SuchWert <= EndddValue0001) then
begin
nErgebnis := 'j';
showmessage('funzt 11111111  !!!!!!');
TransEdit10.Text := 'funzt 1';
end
else
begin
nErgebnis := 'n';
end;

if nErgebnis = 'n' then
begin
 if (SuchWert >= StartValue0002) and (SuchWert <= EndddValue0002) then
 begin
 nErgebnis := 'j';
 showmessage('funzt 22222222 !!!!!!');
 TransEdit10.Text := 'funzt 2';
 end
 else
 begin
 nErgebnis := 'n';
 end;
end;

finally
IniVTB.Free;
end;
end;


eine frage hab ich allerdings noch dazu. momentann werden nur 2 größer/kleiner abfragen gemacht.
ich habe allerdings jetzt über 400 "StartValue0001" und "EndddValue0001" (also bis "StartValue0400" und "EndddValue0400").

wie kann ich jetzt diesen parsus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
if nErgebnis = 'n' then
begin
 if (SuchWert >= StartValue0002) and (SuchWert <= EndddValue0002) then
 begin
 nErgebnis := 'j';
 showmessage('funzt 22222222 !!!!!!');
 TransEdit10.Text := 'funzt 2';
 end
 else
 begin
 nErgebnis := 'n';
 end;
end;

immer wieder wiederholen lassen, nur halt das automatisch StartValue0002 - StartValue0400 abgerufen und abgerasselt werden? natürlich auch für EndddValue

Variable := for Variable do StartValue0001 +1 until StartValue0400

ich hab keine ahnung :D
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 24.06.09 15:03 
Erstens würde ich einen boolschen Wert statt 'n' und 'j' benutzen. Zweitens kannst du doch immer wieder die selbe Variable nehmen. Du musst das Auslesen nur auch in der Schleife machen und dann den Wert 'StartValue248' z.B. ebenfalls in die Variable StartValue einlesen. (Und nicht am Anfang alle Werte auslesen und dann vergleichen.)

Warum eigentlich so viele Start- und Endwerte? Nur prophylaktisch, falls so viele gebraucht werden? Weil dann sollte das auch entsprechend variabel sein und nicht fest 400.
noobie123 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 29



BeitragVerfasst: Mi 24.06.09 15:24 
Boolschen Wert habe ich eingefügt anstatt 'n' und 'j'
Fest 400 muss es nicht sein; es kann schon variabel sein, nur habe ich wirklich keine ahnung.
ich mach das nur hobbymäßig. kein lehrer der mir das bei bringt sonst noch wer ;( learning by doing...
falls jemand so nett wäre n schnipsel zum spicken posten würde, oder n tutorial-link dies bezüglich posten würde, wäre es sehr nett.
ssb-blume
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 375
Erhaltene Danke: 7

XP, W7, W8
Deutschland
BeitragVerfasst: Fr 26.06.09 08:56 
Hallo,
INI ist hier aber sehr fraglich! Änderungen.. immer viel Arbeit.
Hier bietet sich doch eine Datenbank geradezu an!!!

_________________
Brain: an apparatus with which we think we think.
Oreaden
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 16



BeitragVerfasst: Fr 26.06.09 22:43 
die götter meinen, dass zur lösung des problems wohl die datenbanken erschaffen wurden.

was hälst du von dieser theorie? wäre dies vielleicht eine lösung deines problems...

schöne grüsse
Oreaden
noobie123 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 29



BeitragVerfasst: So 28.06.09 17:54 
naja könnte man sich ja mal überlegen^^

könntet ihr mir da einen datenbank typ empfehlen.
also fest steht, das ich nichts auf anderen pc's auf denen das programm läuft installieren muss/darf.

also einfach mein programm anklicken und der zugriff auf die datenbank sollte dann erfolgen; wie bei ini's halt.
bei sql ist es doch so weit ich weiss dass man sich erst was installieren muss.
und paradox wäre zu alt hab ich mal gelesen
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 28.06.09 17:58 
SQLite bietet sich da an. Da musst du nur eine DLL mitliefern und es ist eine schöne kleine Lösung. Die kann zwar auch weniger als größere Systeme und ist bei großen Datenmengen relativ langsam, aber für diesen Zweck hier reicht das in jedem Fall und ist passend.
sqlite4delphi.sourceforge.net/
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: So 28.06.09 18:02 
Für ein 'kleines' Adressbuch ist wohl eine Datenbank etwas übertrieben da würden typisierten Dateien Records wohl ausreichen.
noobie123 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 29



BeitragVerfasst: So 28.06.09 18:06 
naja gut, dann schau mir das ganze mal an. vielen dank und schönen sonntag noch ;)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 28.06.09 18:07 
user profile iconBlackheart666 hat folgendes geschrieben Zum zitierten Posting springen:
Für ein 'kleines' Adressbuch ist wohl eine Datenbank etwas übertrieben da würden typisierten Dateien Records wohl ausreichen.
Typisierte Dateien? Naja, da müsste man feste Stringlängen verwenden, was nicht unbedingt passend ist. Zudem: Wie willst du darin eine dynamische Anzahl an Gebieten zu dem Mitarbeiter speichern? :gruebel:

Mit INIs geht es sicherlich, ist aber etwas unübersichtlich.

Hier wäre eine Datenbank schon recht gut passend. Und zwar könnte man eine zweite Tabelle nehmen, in denen die Gebiete und die zugehörigen Mitarbeiter-IDs stehen. Dann muss man nur in der zweiten Tabelle nach allen Gebieten zu einer bestimmten Mitarbeiter-ID suchen, das ist da eine Abfrage.