//funkcja rozdzielenia napisów na podstawie tablicy ASCI // rozdziela je na trzy czenści: // -małe litery alfabetu do pierwszego znaku spoza tego ciongu // -znaki niebendonce malymi literami alfabetu, aż do pierwszego wystompienia takiego znaku w ciongu // -cała reszta static KontenerNapisy RozdzielNapisy(String input) { KontenerNapisy ob = new KontenerNapisy(); int napis = 0; for (int i = 0; i < input.Length; i++) { if (napis != 1) { if (!((int)input[i] > 96 && (int)input[i] < 123)) { napis++; } } else { if (((int)input[i] > 96 && (int)input[i] < 123)) { napis++; } } switch (napis) { case 0: ob.lewyNapis = ob.lewyNapis + input[i]; break; case 1: ob.instrukcja = ob.instrukcja + input[i]; break; default: ob.prawyNapis = ob.prawyNapis + input[i]; break; } } return(ob); }
//funkcja obsługująca wykonywanie dołączonych bibliotek public string Wykonaj(KontenerNapisy napis) { if (przyłaczoneBibliotekiDLC == null) { return("wystapił błąd z biblioteką MEF"); } foreach (var i in przyłaczoneBibliotekiDLC) { if (i.Metadata["Symbol"].Equals(napis.instrukcja)) { return(i.Value.Operacja(napis.lewyNapis, napis.prawyNapis).ToString()); } //Ta sama operacja co powyżej jednak zmienna korzysta z metadanych, używając interfejsu zamiast słownika /* if (i.Metadata.Symbol.Equals(napis.instrukcja)) * { * return i.Value.Operacja(napis.lewyNapis, napis.prawyNapis).ToString(); * }*/ } return("Operacja nieznaleziona"); }