Zum Inhalt springen

opener

Mitglieder
  • Gesamte Inhalte

    14
  • Benutzer seit

  • Letzter Besuch

  1. Ist es nicht volkommen egal ob ich jetzt eine Zahl (die aber als char Deklariert ist) mit einer anderen Zahl(die auch char ist) miteinander vergleiche oder die beiden Zahlen erst zu einem Integer mache? Ist doch nur unötiger aufwand. Kannst du mir vieleicht sagen wo ich in dem Code den du oben gepostet hast dann die "strcmp()" Funktion einbauen muss? (Ich möchte ja nur das Spalte "Name" und "Nummer" mit den eingegebenen Werten verglichen werden. Das wäre mir eine große Hilfe. mfg opener
  2. Ups da hast du mich nicht richtig vestanden. Ich wollte wissen was das "c" im Code oben macht. Nicht was char c bedeutet. Hätte ich anderes formulieren müssen. Also könnte ich strcmp() nur benutzen wenn ich die einzelnen blocke also sprich "nummer" zu einem String mache, "name" zu einem String..usw den Zur Zeit macht er ja die ganze zeile zu einem String. Ich kann ja nicht die ganze zeile nur mit dem namen oder der nummer vergleichen. mfg opener
  3. Ich bin bei meiner suche auf diese Funktion gestoßen: strcmp() mit der man Strings Vergleichen kann, bin mir aber nicht sicher ob sich das damit umsätzen läst? Sorry für den doppel post aber hier gibt es keine Edit Funktion. opener
  4. @Hakawamu, 1000 danke das hat funktioniert! habe es nun ich den code mit eingebaut: void beleg() { char data[30]; short error_detected; short quit; char mein_string[128]; char c; int i = 0; FILE *ptr_Datei; ptr_Datei = fopen( "kunden.txt", "r" ); printf("hier"); scannen(data); /* BiosClrScr(NORMAL); BiosPutStrMove(0, 2, 13, "Kunde Weahlen", NORMAL); BiosPutStrMove(2, 0, 11, "Kunden Nr.:", NORMAL); BiosPutStrMove(4, 0, 12, "Kunden Name:", NORMAL); GetData(KEYS_ONLY, 2, 10, 12, data); scannen(KEYS_AND_LABELS, 2, 10, 12, data); GetData(KEYS_ONLY, 4, 10, 12, data); */ while(c != EOF) { c = fgetc(ptr_Datei); if(c == ';') // printf("Hier beginnt, bzw. endet (je nachdem wie man's siehst) eine spalte\n"); if(c == '\n') printf("Hier ist die Zeile zu ende und mit dem naechsten Zeichen beginnt die naechste Zeile\n"); } rewind(ptr_Datei); // setzt den filepointer (ptr_Datei) wieder auf den anfang der datei while(c != EOF) { c = fgetc(ptr_Datei); if(c == ';') { // printf("Hier endet die spalte\n"); mein_string[i] = '\0'; //ein string sollte immer mit dem zeichen '\0' abgeschlossen werden printf(mein_string); break; //verlässt die while-Schleife } else { mein_string[i] = c; i++; } } [/PHP] Was genau macht macht den char c? Es werden jetzt allso alle Zeilen eingelesen. Nun ist das Ziel schon um einiges näher! Wie kann ich den jetzt in dem String die Nummer/Name die/der eingeben wird Suchen? und dann den richtigen Datensatz mit allen Infos ausgeben? mfg opener
  5. @Hakawamu Danke für die beschreibung! Nein habe ich nicht, da die schule erst im September los geht. Was man mir erklärt hat ist wie das program aussehen soll/was es können muss etc... Bei uns in der Firma kann keiner C, mein Chef ein bischien, der ist aber in Urlaub. muss ich um ein Zeilenende zu erkennen die Zeilemit einem anderem "Trenzeichen" beenden? Also als Trenzeichen wüde ich ";" nehmen und beim Zeilenende "#". mfg opener
  6. Hi, danke euch beiden für die Erklärung Das hätte ich vieleicht von anfang an sagen sollen das das Format egal ist:cool: Naja, ich werde das ganze dann Morgen erst mal testen und ausprobieren, mal schauen was draus wird. mfg opener
  7. ok, und jetzt noch mal für mich damit ich das auch verstehe was ist der unterschied zwischen nem Puffer und einem Eingabestream? opener
  8. danke für den tip! habe gerade das hier gefunden, char tmp[ZEILEN_LAENGE] = ""; fgets(tmp, ZEILEN_LAENGE, fp); sscanf(tmp, "%[^\t]\t%[^\t]", string1, string2);[/PHP] das macht doch das selbe nur ohne strtok oder sehe ich das falsch? mfg opener
  9. Hi, man muss sich ja nicht auf die Tabs oder Lehrzeichen konzentrieren. Es ist doch sicher möglich andere trenzeichen zu verwenden?! Vieleicht ein ";" oder ein "#". 12345;hopf;große gasse 3;00000;entenhausen;03341235609;5;0;0;0;0 23456;maier;hauptstr. 12a;12000;darkcity;0223486745;1;0;0;0;0 99999;hans;gartenweg 23;00000;entenhausen;03341235490;0;0;0;0;0 [/PHP] mfg opener
  10. mhh ok, aber ich meine es muss doch gehen eine Adresse auslesen zu könne?! Gibt es den in C eine möglichkeit den Gesamten Datensatz...also nur die eine Zeile (Formtiert) auszugeben? Denn so wichtig ist die Adresse ja nun nicht, man muss sie halt nur lesen können. Viel wichtiger ist das man nach der Kunden Nummer oder Name suchen kann! Ich weiß jetzt alerdings nicht genau ob man auch einfach nur s_KundenDaten.Nummer, s_KundenDaten.Name aufrufen kann und die anderen ignorieren? Im nächsten schrit könnte man dann den gefundenen Datensatz wie oben geschrieben mit der Adresse ausgeben. (wenn es halt eine möglickeit dazu gibt). mfg opener
  11. Hi, da bin ich wieder das müste ja mit fscanf() machbar sein, den er soll ja nur die Nummer oder den Namen suchen. Da gibt es ja keine Lehrzeichen. Darf ich dich auch fragen wie man das genau macht? in ner Schleife denke ich mal und wenn der Richtige Datensatz gefunden würde springt er raus. kann man den nicht irgent wie sagen das die strings nicht mit Lehrzeichen sondern Tabs getrent sind? mfg opener
  12. Hi, Ich habe die Strucktur erst mal geändert. So kann man die Adresse natürlich viel besser aufnehmen, ich weis nicht was mir oben mit char adresse geritten hat :bimei struct s_Kunden { int nummer; char nachname[30+1]; char strasse[30+1]; char ort[25+1] int plz; int tele; char rabat[5]; char flag1[1]; char flag2[1]; char flag3[1]; char flag4[1]; }s_KundenData;[/PHP] Also wie ich dich jetzt verstanden habe muss ich die komplete Datei einlessen mit fscanf() und dann die eingescandte Nummer mit den eingelessenen Daten abgleichen? mfg opener
  13. Hi, erst mal vielen dank für die schnelle Antwort! :uli Der Datensatz hat sogar 3 Zeilen ich hänge die txt mal an. Naja, das wird später so ein, das man die Nummer oder den Namen ein Scannen/Tippen kann und er halt den den Kunden über diese Nummer oder Namen heraussucht und die anderen Inforamtionen wie Tele, Rabat etc... anzeigt. mfg opener
  14. Guten Morgen erst einmal so früh und schon ein problem. Also ich habe gerade meine ausbildung angefangen und bin da bei wie alle Anfänger ein Handscanner in C zu programieren Nun da ich haber eigendlich keine ahnung von c habe, stehe ich nun vor einem kleinen problem. Ich habe eine .txt Datei mit Kundendaten: 12345 hopf große gasse 3 00000 entenhausen 03341235609 5 0 0 0 0 23456 maier hauptstr. 12a 12000 darkcity 0223486745 1 0 0 0 0 99999 hans gartenweg 23 00000 entenhausen 03341235490 0 0 0 0 0 [/PHP] Die Daten sind alle durch ein Tab gerent, der nächste Kunde steht halt in der Zeile drunter. Nun möchte ich gerne diese Datei durchsuchen und nach einem Kunden suchen um diesen aufrufen zu können. Es sollen aber nur Nummer und Name durchsucht werden! nach dem [PHP]Kunden_Datei = fopen( "D:kunden.txt", "a" ) ; hört es bei mir allerdings auf, da ich keine ahnung habe wie ich das ganze umsetzen muss. meine struktur sieht folgenermassen aus: struct s_Kunden { char nummer[50+1]; char nachname[50+1]; char adresse[10+1]; int tele; char rabat[5+1]; char flag1; char flag2; char flag3; char flag4; }s_KundenData;[/PHP] Es wäre nett wenn mir jemand behilflich sein könnte mfg opener

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...