Zum Inhalt springen

Nicole_X

Mitglieder
  • Gesamte Inhalte

    13
  • Benutzer seit

  • Letzter Besuch

Beiträge von Nicole_X

  1. long ModuloBLZ, ModuloKtNr;
    
    ModuloBLZ = BLZNr % 97;	// BLZNr Modulo 97 
    
    cout << ModuloKtNr << endl;
    
    CString test2 = BLZKtNr(ModuloBLZ, KtNr);   // BLZNr + KtNr
    
    
    
    CString BLZKtNr(long ModuloBLZ, long KtNr)
    
    {
    
    	CString m;						
    
    	m.Format("%i%i", ModuloBLZ, KtNr);
    
    	cout << m << endl;	
    
    	return m;
    
    }
    Jetzt wird die Zahl (341234567890) wieder zu lang um es so zu machen:
    	int test3 = atof(test2);
    
    	TRACE(test2 + "\r\n");
    
    	TRACE("%f\r\n", test3);

    Wie kann ich jetzt weiterrechnen?:)

  2. Nein, nicht zusammenzählen. Genauso unter Beachtung der Stellenanzahl hintereinanderpacken wie vorher.

    Um mal bei deinem Beispiel zu bleiben:

    700901001234567890131400 mod 97 = ?

    70090100 mod 97 = 34

    => 700901001234567890131400 mod 97 = 341234567890131400 mod 97

    341234567890131400 ist jetzt schon eine Zahl, die in einen 64-Bit-Integer passt.

    Du kannst das aber auch noch weiter reduzieren:

    341234567890 mod 97 = 19

    => 341234567890131400 mod 97 = 19131400 mod 97

    19131400 passt locker in einen 32-Bit-Integer.

    hey danke... so könnte ich die rechnung auf jedenfall umsetzen nur wenn da nicht ein problemchen wäre...

    wie kommst du schon bei der ersten rechnung auf 34? ich komme da auf 35?:confused:

    kannst du mir das bitte erklären vielleicht so schritt für schritt wäre ganz nett :D ?danke

  3. Es ändert nichts am Ergebnis, wenn du die Einzelteile deiner Prüfzahl schon vorher modulo 97 nimmst. Damit schrumpft die BLZ auf maximal 2 Stellen. Du kannst dasselbe Verfahren dann nochmal auf die gekürzte BLZ + angehängte Kontonummer anwenden, damit sollte die Gesamtzahl klein genug sein, dass sie in einen 32-Bit-Integer passt.

    Versteh ich nicht ganz..

    Ich dividiere die BLZ durch 97, dann die Kontonummer dividiert durch 97, und dann die Länderkennung+00 durch 97?! Und die Ergebnisse dann zusammenzählen?! Da kommt dann aber nicht das richtige raus.. logisch..

    Bin nicht so des Mathegenie :floet:

    Oder kann man das irgendwie so machen wie man schriftlich dividiert?

    Wie in der 3. Klasse :D

  4. Hilfestellung bedeutet, dass du selbst auch einen Teil der Arbeit tust. Davon ist aber bisher nichts zu sehen.

    Zeig, was du bisher geschrieben hast. Ein Grundgerüst für das Programm wirst du ja haben. Eine Zeichenkette vom Benutzer einzulesen, sollte auch kein Problem sein.

    #include <stdafx.h>
    
    #include <iostream.h>
    
    #include <stdio.h>
    
    #include <string.h>
    
    #include <afx.h> 
    
    
    CString plus(long BLZNr, long KtNr, char BZahl, char BZahlC);
    
    
    CString ZErgebnis;
    
    int main(int argc, char* argv[])
    
    {
    
    	long BLZNr, KtNr, nuller;
    
    	CString LKennung;
    
    	double i,i2;
    
    	double BZahl,BZahlC;
    
    	char b,c; 
    
    
    	LKennung = "DE";
    
    	BLZNr = 70090100;
    
    	KtNr = 1234567890;
    
    	nuller = 00;
    
    	cout << LKennung << endl;
    
    	cout << BLZNr << endl;
    
    	cout << KtNr << endl;
    
    
    
    
    
    	b = (char) LKennung.GetAt(0);//Nimmt den ersten Buchstaben der Länderkennung
    
    	c = (char) LKennung.GetAt(1);//Nimmt den zweiten Buchstaben der Länderkennung
    
    	char BuchstabeB = b;	// ASCII
    
    	char BuchstabeC = c;	// ASCII
    
    	i = BuchstabeB;
    
    	i2 = BuchstabeC;
    
    
    	BZahl = i -55;		// ASCII-Code - 55
    
    	BZahlC = i2 -55;		// ASCII-Code - 55
    
    
    	cout << BZahl << endl;	
    
    	cout << BZahlC << endl;	
    
    
    	CString test = plus(BLZNr, KtNr, BZahl, BZahlC);
    
    /*	long double testl = atof(test);
    
    	TRACE(test + "\r\n");
    
    	TRACE("%f\r\n", testl);
    
    */
    
    
    	return 0;
    
    }
    
    
    
    
    CString plus(long BLZNr, long KtNr, char BZahl, char BZahlC)
    
    {
    
    	CString s;						
    
    	s.Format("%i%i%i%i00", BLZNr, KtNr, BZahl, BZahlC);
    
    	cout << s << endl;	
    
    	return s;
    
    }
    
    

    Bei dem Auskommentierten komm ich nicht mehr weiter..

    Wie formatiere ich das ganze jetzt in eine Zahl um? Das Problem ist, das sie so lang ist..

    Irgendwelche Vorschläge!?

  5. Wenn bei dir gar nichts geht, wenn du nicht irgendwo abschreibst, ist das ziemlich traurig.

    Du kannst nicht erwarten, dass hier jemand deine Hausaufgaben macht, wenn deine Eigeninitiative gerade mal dazu ausreicht, irgendwelchen Code abzuschreiben.

    Ja find ich auch traurig, aber danke das dus mir nochmal vor Augen geführt hast!

    Ich erwarte nicht das mir jemand meine Hausaufgaben macht sondern mir Hilfestellungen gibt..

    Aber ich kann hier wohl keine Hilfe erwarten. Trotzdem Danke!

  6. #include "IBAN.h"
    
    #include "stdafx.h"	
    
    
    using
    
    
    class IBAN_validieren
    
    {
    
        private: string IBAN;
    
    
    
        public: IBAN_validieren(string sIBAN)
    
        {
    
            IBAN = sIBAN;
    
        }
    
    
    
        public: bool ISIBAN()
    
        {
    
            //Leerzeichen entfernen
    
            string mysIBAN = IBAN.Replace(" ", "");
    
            //Eine IBAN hat maximal 34 Stellen
    
            if (mysIBAN.Length > 34 || mysIBAN.Length < 5)
    
                return false; 
    
            else
    
            {
    
                string LaenderCode = mysIBAN.Substring(0, 2).ToUpper();
    
                string Pruefsumme = mysIBAN.Substring(2, 2).ToUpper();
    
                string BLZ_Konto = mysIBAN.Substring(4).ToUpper();
    
    
                if (!IsNumeric(Pruefsumme))
    
                    return false; //Prüfsumme ist nicht numerisch
    
    
                if (!ISLaendercode(LaenderCode))
    
                    return false; //Ländercode ist ungültig
    
    
                //Pruefsumme validieren
    
                string Umstellung = BLZ_Konto + LaenderCode + "00";
    
                string Modulus = IBANCleaner(Umstellung);
    
                if (98 - Modulo(Modulus, 97) != int.Parse(Pruefsumme))
    
                    return false;  //Prüfsumme ist fehlerhaft 
    
            }
    
            return true;
    
        }
    
    
        private bool ISLaendercode(string code)
    
        {
    
            // Der Code muss laut ISO 3166-1 ein 2-stelliger Ländercode aus Buchstaben sein.
    
            if (code.Length != 2)
    
                return false;
    
            else
    
            {
    
                code = code.ToUpper();
    
                string[] Laendercodes = { "AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", 
    
                    "AJ", "AK", "AL", "AM", "AN", "AO", "AP", "AQ", "AR", "AS", "AT", "AU", "AV",
    
                    "AW", "AX", "AY", "AZ", "BA", "BB", "BC", "BD", "BE", "BF", "BG", "BH", "BI",
    
                    "BJ", "BK", "BL", "BM", "BN", "BO", "BP", "BQ", "BR", "BS", "BT", "BU", "BV",
    
                    "BW", "BX", "BY", "BZ", "CA", "CB", "CC", "CD", "CE", "CF", "CG", "CH", "CI",
    
                    "CJ", "CK", "CL", "CM", "CN", "CO", "CP", "CQ", "CR", "CS", "CT", "CU", "CV",
    
                    "CW", "CX", "CY", "CZ", "DA", "DB", "DC", "DD", "DE", "DF", "DG", "DH", "DI",
    
                    "DJ", "DK", "DL", "DM", "DN", "DO", "DP", "DQ", "DR", "DS", "DT", "DU", "DV",
    
                    "DW", "DX", "DY", "DZ", "EA", "EB", "EC", "ED", "EE", "EF", "EG", "EH", "EI",
    
                    "EJ", "EK", "EL", "EM", "EN", "EO", "EP", "EQ", "ER", "ES", "ET", "EU", "EV",
    
                    "EW", "EX", "EY", "EZ", "FA", "FB", "FC", "FD", "FE", "FF", "FG", "FH", "FI",
    
                    "FJ", "FK", "FL", "FM", "FN", "FO", "FP", "FQ", "FR", "FS", "FT", "FU", "FV",
    
                    "FW", "FX", "FY", "FZ", "GA", "GB", "GC", "GD", "GE", "GF", "GG", "GH", "GI",
    
                    "GJ", "GK", "GL", "GM", "GN", "GO", "GP", "GQ", "GR", "GS", "GT", "GU", "GV",
    
                    "GW", "GX", "GY", "GZ", "HA", "HB", "HC", "HD", "HE", "HF", "HG", "HH", "HI",
    
                    "HJ", "HK", "HL", "HM", "HN", "HO", "HP", "HQ", "HR", "HS", "HT", "HU", "HV",
    
                    "HW", "HX", "HY", "HZ", "IA", "IB", "IC", "ID", "IE", "IF", "IG", "IH", "II"
    
    };
    
                if (Array.IndexOf(Laendercodes, code) == -1)
    
                    return false;
    
                else
    
                    return true;
    
            }
    
        }
    
    
        private: string IBANCleaner(string sIBAN)
    
        {
    
            for (int x = 65; x <= 90; x++)
    
            {
    
                int replacewith = x - 64 + 9;
    
                string replace = ((char)x).ToString();
    
                sIBAN = sIBAN.Replace(replace, replacewith.ToString());
    
            }
    
            return sIBAN;
    
        }
    
    
        private: int Modulo(string sModulus, int iTeiler)
    
        {
    
            int iStart,iEnde,iErgebniss,iRestTmp,iBuffer;
    
            string iRest = "",sErg = "";
    
    
            iStart = 0;
    
            iEnde = 0;
    
    
            while (iEnde <= sModulus.Length - 1)
    
            {
    
                iBuffer = int.Parse(iRest + sModulus.Substring(iStart, iEnde - iStart + 1));
    
    
                if (iBuffer >= iTeiler)
    
                {
    
                    iErgebniss = iBuffer / iTeiler;
    
                    iRestTmp = iBuffer - iErgebniss * iTeiler;
    
                    iRest = iRestTmp.ToString();
    
    
                    sErg = sErg + iErgebniss.ToString();
    
    
                    iStart = iEnde + 1;
    
                    iEnde = iStart;
    
                }
    
                else
    
                {
    
                    if (sErg != "")
    
                        sErg = sErg + "0";
    
    
                    iEnde = iEnde + 1;
    
                }
    
            }
    
    
            if (iStart <= sModulus.Length)
    
                iRest = iRest + sModulus.Substring(iStart);
    
    
            return int.Parse(iRest);
    
        }
    
    
        private bool IsNumeric(string value)
    
        {
    
            try
    
            {
    
                int.Parse(value);
    
                return (true);
    
            }
    
            catch
    
            {
    
                return (false);
    
            }
    
        }
    
    
    	IBAN_validieren ib = new IBAN_validieren(textBox1.Text);
    
    	if (!ib.ISIBAN())
    
    	{
    
        MessageBox.Show("IBAN falsch");
    
    	}
    
    }
    
    
    

    ja also das is das was ich bis jetzt habe.... aber es sind 100 fehler da drinn :D:d und ich komm einfach nicht mehr klar aber so ähnlich sollte es ablaufen

  7. Berechnet aus welchen Eingabedaten?

    Was die Prüfung angeht:

    International Bank Account Number ? Wikipedia

    Die IBAN Nummer soll aus Länderkennung, BLZ und Kontonummer berechnet werden.

    Ja genauso wie auf Wikipedia sollte es ablaufen.. und bei der Prüfung dann einfach wieder umgestellt und Modulo 97 gemacht werden und wenn dort ein Wert von 1 herauskommt ist die IBAN Nummer korrekt und ein anderer Wert als 1 ist sie falsch.

  8. Hallo miteinander....

    ich habe folgendes problem ich müsste ein programm in c ++ schreiben, das einfach eine iban nummer prüft und auch iban nummer berechnet.

    also ich bräuchte nur die funktionen mehr nicht, wäre wirklich sehr nett, da ich kaum ahnung von c++ habe!! :(

    Vielen Dank schonmal!!

  9. Ich hoffe es kann mir jemand helfen, ich bin Auszubildende im 1. Lehrjahr deswegen kenne ich mich noch nicht so gut aus.

    Ich will nicht jedesmal diese 2 Zeilen haben für die "Zieldatei" kann ich das irgendwie zusammenfassen das ich nurnoch angeben muss

    wieviele Zieldateien es sind?

    CStringArray aOldFiles;

    char xWert[500];

    char Nochwas[500];

    char Test[500];

    DWORD destSize;

    destSize=500;

    GetPrivateProfileString("UpdateFiles","Zieldatei1","NULL",xWert,destSize,"C:\\PROGRAMME\\UPDATE\\TEST\\TESTLOADER.INI");

    aOldFiles.Add( xWert );

    GetPrivateProfileString("UpdateFiles","Zieldatei2","NULL",xWert,destSize,"C:\\PROGRAMME\\UPDATE\\TEST\\TESTLOADER.INI");

    aOldFiles.Add( xWert );

    GetPrivateProfileString("UpdateFiles","Zieldatei3","NULL",xWert,destSize,"C:\\PROGRAMME\\UPDATE\\TEST\\TESTLOADER.INI");

    aOldFiles.Add( xWert );

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...