Die Mitgliedschaft ist KOSTENLOS und bietet allen registrierten Nutzern unbegrenzten Zugriff auf alle Funktionen, Ressourcen und Tools von ConsultDomain.de! Optionale Mitgliedschaftsupgrades schalten exklusive Vorteile frei, wie Profil-Signaturen mit Links, Bannerplatzierungen, Erwähnungen im wöchentlichen Newsletter und vieles mehr – individuell angepasst an Ihr Mitgliedschaftslevel!

Willkommen!

Durch Ihre Registrierung bei uns können Sie mit anderen Mitgliedern unserer Community diskutieren, teilen und private Nachrichten austauschen.

Jetzt anmelden!

C-Programmierung

  • Ersteller Ersteller engel
  • Erstellt am Erstellt am
E

engel

Guest
Eine kleine Frage an die jenigen, die sich in der C-Programmierung auskennen:

Ich möchte prüfen, ob ein festzulegender Buchstabe in einem Datensatz vorhanden ist.

Weiss es jemand?

grüsse,
engel
 
in normalem C würde ich auf string-compare zurückgreifen:

if (strcmp("festzulegender Buchstabe", String-zu-überprüfen)!=0) printf "zeichen vorhanden\n";

Beispiel:

if (strcmp("A","ist hier ein A drin?")!=0)
   printf "hier ist ein A drin\n";

oder kürzer:

if (strcmp("A","ist hier ein A drin?"))
   printf "hier ist ein A drin\n";

Umkehr:

if (!strcmp("A","Wie haben aber nur X!"))
   printf "hier ist KEIN A drin\n";

Wenn der String aber nicht NULL-terminiert ist wäre es besser die Funktion strncmp (beachte das "n" im Befehl!) Die Parameter lauten dann:

if (strcmp("festzulegender Buchstabe", String-zu-überprüfen, Anzahl-der-Zeichen-die-untersucht-werden-sollen)!=0) printf "zeichen vorhanden\n";

Beispiel:

if (strncmp("A","ist hier ein A drin?",1)!=0)
   printf "hier ist ein A drin\n";

Alle hier ausgeschriebenen Texte dürfen natürlich auch Variablen vom Typ String sein. etwas anders sieht es bei Pointern aus.

In Datenbanken gibt es aber je nach Datenbank eine eigene Abfragestruktur (SQL etc)

Wars das?
 
Kann die Antwort von Martin nicht ganz nachvollziehen, denn strcmp() vergleicht zwei Zeichenfolgen. (Und auch sonst sind die Ausführungen nicht so ganz richtig... ;) )

Würde das so lösen:


#include "stdio.h"
#include "string.h"

int main( int argc, char* argv[] )
{
 const char* pDataRecord = "Engels Datensatz";

 /* Sucht ein einzelnes Zeichen */
 if( strchr( pDataRecord, 'D' ) )
   printf( "Das Zeichen gefunden" );

 /* Sucht eines der Zeichen */
 if( strpbrk( pDataRecord, "AEIOU" ) )
   printf( "Ein Zeichen gefunden" );

 return 0;
}


Wenn mit Datensatz etwas anderes gemeint ist, bitte genauer erklären.

Gruß Gentry 8)
 
Hallo Martin und Gentry!
Vielen Dank für Eure Antworten!

Ich beschreibe das Problem etwas genauer:

Ich arbeite zur Zeit mit dem Programmgenerator JobGen  für den Scanner PT600  von unitech.

JobGen ist in der Art von Netobjects Fusion aufgebaut.
Man kann einfache Anwendungen relativ leicht erstellen. Modifizierung muss man allerdings in C erstellen (C war bis heute für mich nur ein Buchstabe ;D )

In diesem Falle muss ich den Ablauf "qualifier", der den Wert True oder False setzt, durch den Programmcode anpassen. Es soll dort abgefragt werden, ob der eingelesene Datensatz an der ersten Stelle einen gewissen Buchstaben führt. Wenn dieser Buchstabe enthalten ist, wird der Wert automatisch auf True gesetzt.



Die Funktion wird wie folgt im Handbuch beschrieben:


The Qualifier is a C expression that is used to verify the input data. The result of a Qualifier must be assigned to the reserved variable _RESULT_ which will checked to get the result of Qualifier verification. If the value of the _RESULT_ is TRUE (non zero) the input is accepted, a link condition Success will be set. Otherwise it is treated as FALSE and a link condition Failure will be set.

Example: There are three fields in one record, field 1 is the data by collect node ‘quantity’, field 2 is the data by collect node ‘
price’, the field 3 is the data of collect node ‘totalprice’. the totalprice is created by a formula: _totalprice  = _quantity * _price;
. Assume: if the data value of totalprice is smaller than 10000 then the data is good. Type _RESULT_ = _totalprice < 10000;  in the Qualifier be true box to define the qualifier. (Please refer to the example in Formula.)

Qualifier is a powerful tool to verify the input data, because you can set your own rule for the data verification by writing some C code.


Ich hoffe, das Problem jetzt richtig dargestellt zu haben und Ihr mir vielleicht weiterhelfen könnt.

Viele Grüsse,
engel
 
Ich nehme mal an, das der zu prüfende Datensatz irgend einen Namen hat und ein Array ist.

z.b. : _data

Dann würde der Codeteil so aussehen:


if( _data[0] == 'Z' ) _RESULT_ = TRUE;


wobei Z das Zeichen ist auf das Du prüfen willst.
Ich gehe davon aus das _RESULT_ eine globale Variable ist, und TRUE als Konstante vorhanden ist.
 
Hallo Gentry,

vielen,vielen lieben und herzlichen Dank!

Das ist es gewesen... ;D

grüsse,
engel
 

Who has viewed this thread (Total: 1) Details anzeigen

Neueste Themen

Beliebte Inhalte

Besonderer Dank

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
68.348
Beiträge
377.385
Mitglieder
6.777
Neuestes Mitglied
tedcars
Zurück
Oben