From 1a86037e1ff3f49506760a130f38bad415dde1d0 Mon Sep 17 00:00:00 2001 From: Uwe Wienkop <uwe.wienkop@th-nuernberg.de> Date: Mon, 29 Nov 2021 11:20:25 +0100 Subject: [PATCH] 2021-11-29 String-Operationen --- 08 2D_Felder/Program.cs | 27 ++++-- 08 ZeichenkettenIntro/Program.cs | 7 +- 09 CompareTo/09 CompareTo.csproj | 9 ++ 09 CompareTo/Program.cs | 47 +++++++++++ 09 Contains_UebgMo/09 Contains_UebgMo.csproj | 9 ++ 09 Contains_UebgMo/Program.cs | 39 +++++++++ 09 Histogramm/09 Histogramm.csproj | 9 ++ 09 Histogramm/Program.cs | 28 +++++++ 09 IstPalindrom/09 IstPalindrom.csproj | 9 ++ 09 IstPalindrom/Program.cs | 12 +++ 09 PalindromFinal/09 PalindromFinal.csproj | 9 ++ 09 PalindromFinal/Program.cs | 83 +++++++++++++++++++ .../09 PalindromFinalTest.csproj | 27 ++++++ 09 PalindromFinalTest/UnitTest1.cs | 39 +++++++++ 09 Palindrom_Easy/09 Palindrom_Easy.csproj | 9 ++ 09 Palindrom_Easy/Program.cs | 35 ++++++++ Prog1_WS2021_22.sln | 40 ++++++++- 17 files changed, 429 insertions(+), 9 deletions(-) create mode 100644 09 CompareTo/09 CompareTo.csproj create mode 100644 09 CompareTo/Program.cs create mode 100644 09 Contains_UebgMo/09 Contains_UebgMo.csproj create mode 100644 09 Contains_UebgMo/Program.cs create mode 100644 09 Histogramm/09 Histogramm.csproj create mode 100644 09 Histogramm/Program.cs create mode 100644 09 IstPalindrom/09 IstPalindrom.csproj create mode 100644 09 IstPalindrom/Program.cs create mode 100644 09 PalindromFinal/09 PalindromFinal.csproj create mode 100644 09 PalindromFinal/Program.cs create mode 100644 09 PalindromFinalTest/09 PalindromFinalTest.csproj create mode 100644 09 PalindromFinalTest/UnitTest1.cs create mode 100644 09 Palindrom_Easy/09 Palindrom_Easy.csproj create mode 100644 09 Palindrom_Easy/Program.cs diff --git a/08 2D_Felder/Program.cs b/08 2D_Felder/Program.cs index f9f17f9..a71c97e 100644 --- a/08 2D_Felder/Program.cs +++ b/08 2D_Felder/Program.cs @@ -21,7 +21,7 @@ namespace _08_2D_Felder int[,] f2 = new int[f1.GetLength(0), f1.GetLength(1)]; for (int z = 0; z < f1.GetLength(0); z++) // GetLength(n) ~ Anzahl der Elemente in der Dimension n for (int i = 0; i < f1.GetLength(1); i++) - f2[z,i] = f1[z, i]; + f2[z, i] = f1[z, i]; return f2; } static void Main(string[] args) @@ -51,7 +51,7 @@ namespace _08_2D_Felder for (int z = 0; z < h.GetLength(0); z++) { for (int s = 0; s < h.GetLength(1); s++) // .GetLength(1) ~ Anzahl der Spalten - h[z, s] = (z+1)*100+s; + h[z, s] = (z + 1) * 100 + s; } FeldAusgeben(h); @@ -64,13 +64,13 @@ namespace _08_2D_Felder // Unterste Zeile mit 4 belegen: for (int i = 0; i < h.GetLength(1); i++) // .GetLength(1) ~ Anzahl der Spalten - h[h.GetLength(0)-1, i] = 4; + h[h.GetLength(0) - 1, i] = 4; FeldAusgeben(h); int[,] hh = FeldKopieren(h); // Ganz linke Spalte von der zweiten bis zur vorletzten Zeile mit 2 belegen: - for (int z = 1; z < h.GetLength(0)-1; z++) // .GetLength(0) ~ Anzahl der Zeilen + for (int z = 1; z < h.GetLength(0) - 1; z++) // .GetLength(0) ~ Anzahl der Zeilen h[z, 0] = 2; FeldAusgeben(h); @@ -83,7 +83,7 @@ namespace _08_2D_Felder // Hauptdiagonale mit 5 belegen: int min = Math.Min(h.GetLength(0), h.GetLength(1)); - for (int i = 0; i < min; i++) + for (int i = 0; i < min; i++) h[i, i] = 5; FeldAusgeben(h); @@ -136,6 +136,23 @@ namespace _08_2D_Felder //int[] w6 = g1[..3]; // 1,2,3 //int[] w7 = g1[..]; // Kopie von g1 + + + // Aus https://docs.microsoft.com/de-de/dotnet/csharp/whats-new/tutorials/ranges-indexes + string[] words = new string[] + { + // index from start index from end + "The", // 0 ^9 + "quick", // 1 ^8 + "brown", // 2 ^7 + "fox", // 3 ^6 + "jumped", // 4 ^5 + "over", // 5 ^4 + "the", // 6 ^3 + "lazy", // 7 ^2 + "dog" // 8 ^1 + }; // 9 (or words.Length) ^0 } } } + diff --git a/08 ZeichenkettenIntro/Program.cs b/08 ZeichenkettenIntro/Program.cs index 326d949..207d5bf 100644 --- a/08 ZeichenkettenIntro/Program.cs +++ b/08 ZeichenkettenIntro/Program.cs @@ -29,7 +29,8 @@ namespace _08_ZeichenkettenIntro foreach (char c in s) { if (c >= 'a' && c <= 'z') // Handelt es sich um einen Kleinbuchstaben? - erg += (char)(c - ('a' - 'A')); // Differenz zwischen Klein- u. Großbuchstaben abziehen + erg += (char)(c - ('a' - 'A')); // Differenz zwischen Klein- u. Großbuchstaben abziehen + // (char) Zeichenwert als char verwenden else erg += c; } @@ -41,7 +42,7 @@ namespace _08_ZeichenkettenIntro foreach (char c in s) { if (c >= 'A' && c <= 'Z') // Handelt es sich um einen Kleinbuchstaben? - erg += (char)(c + ('a' - 'A')); // Differenz zwischen Klein- u. Großbuchstaben abziehen + erg += (char)(c + ('a' - 'A')); // Differenz zwischen Klein- u. Großbuchstaben hinzuaddieren else erg += c; } @@ -53,6 +54,8 @@ namespace _08_ZeichenkettenIntro Console.WriteLine(InGrossbuchstabenKonvertieren(s)); Console.WriteLine(InKleinbuchstabenKonvertieren(s)); + + ASCII_Tabelle(); } } } diff --git a/09 CompareTo/09 CompareTo.csproj b/09 CompareTo/09 CompareTo.csproj new file mode 100644 index 0000000..a2d6109 --- /dev/null +++ b/09 CompareTo/09 CompareTo.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_09_CompareTo</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/09 CompareTo/Program.cs b/09 CompareTo/Program.cs new file mode 100644 index 0000000..9de5f8f --- /dev/null +++ b/09 CompareTo/Program.cs @@ -0,0 +1,47 @@ +using System; + +namespace _09_CompareTo +{ + class Program + { + static int CompareTo(string s1, string s2) + { + // gemeinsame Länge bestimmen + int len = Math.Min(s1.Length, s2.Length); + + // Zeichen auf der gemeinsamen Länge vergleichen + for (int i = 0; i < len; i++) + { + int diff = s1[i] - s2[i]; // Differenz der jeweiligen Zeichen von s1 und s2 + if (diff != 0) // Unterschied gefunden? + return diff; + } + + // Beide Zeichenketten sind auf der gemeinsamen Länge identisch + return s1.Length - s2.Length; + } + static void CompareToTest(string s1, string s2) + { + Console.WriteLine($"{s1,20} | {s2,20} | {CompareTo(s1,s2)}"); + } + static void Main(string[] args) + { + string s1 = "abc"; + string s2 = "abcd"; + + // s1.CompareTo(s2) + // --> 0: wenn s1 == s2 + // --> neg.: wenn s1 < s2 + // --> pos.: wenn s1 > s2 + + CompareToTest("abc", "abdd"); + CompareToTest("abc", "abc"); + CompareToTest("abcde", "abc"); + CompareToTest("abc", "def"); + + + + + } + } +} diff --git a/09 Contains_UebgMo/09 Contains_UebgMo.csproj b/09 Contains_UebgMo/09 Contains_UebgMo.csproj new file mode 100644 index 0000000..a56352b --- /dev/null +++ b/09 Contains_UebgMo/09 Contains_UebgMo.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_09_Contains_UebgMo</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/09 Contains_UebgMo/Program.cs b/09 Contains_UebgMo/Program.cs new file mode 100644 index 0000000..d301b2c --- /dev/null +++ b/09 Contains_UebgMo/Program.cs @@ -0,0 +1,39 @@ +using System; + +namespace _09_Contains_UebgMo +{ + class Program + { + static bool Contains(string s, string enthalten) + { + for (int i = 0; i <= s.Length - enthalten.Length; i++) // Schleife über s1-String + { + bool gefunden = true; // Annahme: Der Teilstring kommt ab dieser Pos. vor + for (int j = 0; j < enthalten.Length; j++) // Schleife über enthalten-String + { + if (s[i + j] != enthalten[j]) + { + gefunden = false; + break; + } + } + if (gefunden) // Hat sich die Annahme erfüllt? + return true; // Ja: enthalten-String ist "enthalten" + } + return false; // Der enthalten-String kommt an keiner Position (vollständig) vor + } + static void ContainsTest(string s1, string s2) + { + Console.WriteLine($"{s1,20} enthält {s2,-15} {Contains(s1,s2)}"); + } + static void Main(string[] args) + { + ContainsTest("aaabcdef", "aaa"); + ContainsTest("aaabcdef", "abc"); + ContainsTest("aaabcdef", "abcx"); + ContainsTest("aaabcdef", "def"); + + ContainsTest("def","aaabcdef"); + } + } +} diff --git a/09 Histogramm/09 Histogramm.csproj b/09 Histogramm/09 Histogramm.csproj new file mode 100644 index 0000000..76202b0 --- /dev/null +++ b/09 Histogramm/09 Histogramm.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_09_Histogramm</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/09 Histogramm/Program.cs b/09 Histogramm/Program.cs new file mode 100644 index 0000000..7bb7cdc --- /dev/null +++ b/09 Histogramm/Program.cs @@ -0,0 +1,28 @@ +using System; + +namespace _09_Histogramm +{ + class Program + { + static int[] Histogramm(string zeichenkette) + { + int[] histo = new int[26]; + // histo[0] ~ Anzahl von 'A' + // histo[1] ~ Anzahl von 'B' + // histo[25] ~ Anzahl von 'Z' + + foreach (char c in zeichenkette) + if (c >= 'A' && c <= 'Z') + histo[c-'A']++; + return histo; + } + static void Main(string[] args) + { + int[] h = Histogramm("HELLO WORLD"); + for (int i = 0; i < h.Length; i++) + { + Console.WriteLine($"{i,2} - {(char) (i+'A')}: {h[i]}"); + } + } + } +} diff --git a/09 IstPalindrom/09 IstPalindrom.csproj b/09 IstPalindrom/09 IstPalindrom.csproj new file mode 100644 index 0000000..999d1b5 --- /dev/null +++ b/09 IstPalindrom/09 IstPalindrom.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_09_IstPalindrom</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/09 IstPalindrom/Program.cs b/09 IstPalindrom/Program.cs new file mode 100644 index 0000000..a24c310 --- /dev/null +++ b/09 IstPalindrom/Program.cs @@ -0,0 +1,12 @@ +using System; + +namespace _09_IstPalindrom +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("Hello World!"); + } + } +} diff --git a/09 PalindromFinal/09 PalindromFinal.csproj b/09 PalindromFinal/09 PalindromFinal.csproj new file mode 100644 index 0000000..c96a984 --- /dev/null +++ b/09 PalindromFinal/09 PalindromFinal.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_09_PalindromFinal</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/09 PalindromFinal/Program.cs b/09 PalindromFinal/Program.cs new file mode 100644 index 0000000..abdf7e5 --- /dev/null +++ b/09 PalindromFinal/Program.cs @@ -0,0 +1,83 @@ +using System; + +namespace _09_PalindromFinal +{ + public class Program + { + /// <summary> + /// Ausgangsbasis für den Palindromvergleich + /// </summary> + /// <param name="s">Zu testender String</param> + /// <returns></returns> + static bool IstPalindrom0(string s) + { + //s = s.ToLower(); + for (int i = 0, j = s.Length - 1; i < j; i++, j--) + { + if (char.ToLower(s[i]) != char.ToLower(s[j])) + return false; + } + return true; + } + + + static bool IstBuchstabe(char c) + { + return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); + } + public static bool IstPalindrom(string s) + { + bool mindEinZeichen = false; + int i = 0, j = s.Length - 1; + while (i <= j) + { + while (i <= j && IstBuchstabe(s[j]) == false) + j--; // rechten Index solange nach links setzen, bis ein Buchstabe gefunden wird + + while (i <= j && IstBuchstabe(s[i]) == false) + i++; // dto. für linken Index + + if (i <= j) + { + if (char.ToLower(s[i]) != char.ToLower(s[j])) // Sind die Buchstaben gleich? + return false; + else + mindEinZeichen = true; + } + i++; // linker Index ein Zeichen nach rechts + j--; // rechter Index ein Zeichen nach links + } + return mindEinZeichen; + } + static void Palindromtest(string s) + { + Console.WriteLine($"{s,38} --> {IstPalindrom(s)}"); + } + + static void Main(string[] args) + { + // Nur Großbuchstaben + Palindromtest("ANNA"); + Palindromtest("OTTO"); + Palindromtest("ABA"); + Palindromtest("RELIEFPFEILER"); + + // Großbuchstaben plus Sonderzeichen + Palindromtest("AB.A"); + Palindromtest("NORBERT"); + + // Groß- und Kleinbuchstaben + Palindromtest("Hallo"); + Palindromtest("Otto"); + Palindromtest("..Ott o!!!"); + Palindromtest("Otto!!!"); + Palindromtest("Regal mit Sirup pur ist im Lager!"); + Palindromtest("......"); + Palindromtest("! ! ."); + Palindromtest(""); + Palindromtest("A"); + Palindromtest("...A.."); + Palindromtest("..A..."); + } + } +} diff --git a/09 PalindromFinalTest/09 PalindromFinalTest.csproj b/09 PalindromFinalTest/09 PalindromFinalTest.csproj new file mode 100644 index 0000000..3ac6d0f --- /dev/null +++ b/09 PalindromFinalTest/09 PalindromFinalTest.csproj @@ -0,0 +1,27 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_09_PalindromFinalTest</RootNamespace> + + <IsPackable>false</IsPackable> + </PropertyGroup> + + <ItemGroup> + <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.4" /> + <PackageReference Include="xunit" Version="2.4.1" /> + <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3"> + <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> + <PrivateAssets>all</PrivateAssets> + </PackageReference> + <PackageReference Include="coverlet.collector" Version="3.0.2"> + <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> + <PrivateAssets>all</PrivateAssets> + </PackageReference> + </ItemGroup> + + <ItemGroup> + <ProjectReference Include="..\09 PalindromFinal\09 PalindromFinal.csproj" /> + </ItemGroup> + +</Project> diff --git a/09 PalindromFinalTest/UnitTest1.cs b/09 PalindromFinalTest/UnitTest1.cs new file mode 100644 index 0000000..2ee1596 --- /dev/null +++ b/09 PalindromFinalTest/UnitTest1.cs @@ -0,0 +1,39 @@ +using System; +using Xunit; +using _09_PalindromFinal; + +namespace _09_PalindromFinalTest +{ + public class PalindromTest + { + [Fact] + public void TestMitGrossbuchstaben() + { + Assert.True(Program.IstPalindrom("ANNA"), "Anna ist Palindrom"); + Assert.True(Program.IstPalindrom("OTTO"), "OTTO ist Palindrom"); + Assert.True(Program.IstPalindrom("ABA"), "ABA ist Palindrom"); + Assert.True(Program.IstPalindrom("AB.A"), "ABA mit whitespace ist Palindrom"); + Assert.False(Program.IstPalindrom("NORBERT"), "Norbert ist kein Palindrom"); + Assert.False(Program.IstPalindrom("Hallo"), "Hallo ist kein Palindrom"); + Assert.True(Program.IstPalindrom("RELIEFPFEILER"), "Reliefpfeiler ist Palindrom"); + } + [Fact] + public void TestGemischt() + { + Assert.True(Program.IstPalindrom("Otto"), "Otto mit Kleinbuchstaben ist Palindrom"); + Assert.True(Program.IstPalindrom("..Ott o!!!"), "Otto mit umgebenden whitespaces"); + Assert.True(Program.IstPalindrom("Otto!!!"), "Otto mit nachfolgenden whitespaces"); + Assert.True(Program.IstPalindrom("Regal mit Sirup pur ist im Lager!"), "Regal mit Sirup..."); + } + [Fact] + public void TestWhitespaces() + { + Assert.False(Program.IstPalindrom("......"), "Nur whitespaces1"); + Assert.False(Program.IstPalindrom("! ! ."), "Nur whitespaces2"); + Assert.False(Program.IstPalindrom(""), "Leerstring"); + Assert.True(Program.IstPalindrom("A"), "Alleinstehendes A"); + Assert.True(Program.IstPalindrom("...A.."), "A mit umgebenden '.'"); + Assert.True(Program.IstPalindrom("..A..."), "A mit umgebenden '.'"); + } + } +} diff --git a/09 Palindrom_Easy/09 Palindrom_Easy.csproj b/09 Palindrom_Easy/09 Palindrom_Easy.csproj new file mode 100644 index 0000000..71953e0 --- /dev/null +++ b/09 Palindrom_Easy/09 Palindrom_Easy.csproj @@ -0,0 +1,9 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>_09_Palindrom_Easy</RootNamespace> + </PropertyGroup> + +</Project> diff --git a/09 Palindrom_Easy/Program.cs b/09 Palindrom_Easy/Program.cs new file mode 100644 index 0000000..0bfceff --- /dev/null +++ b/09 Palindrom_Easy/Program.cs @@ -0,0 +1,35 @@ +using System; + +namespace _09_Palindrom_Easy +{ + class Program + { + static bool IstPalindrom(string s) + { + for (int i = 0, j=s.Length-1; i < j; i++, j--) + { + if (s[i] != s[j]) + return false; // kein Palindrom + } + return true; + } + static void IstPalindromTest(string s) + { + Console.WriteLine($"{s,30} --> {IstPalindrom(s)}"); + } + static void Main(string[] args) + { + IstPalindromTest("ANNA"); + IstPalindromTest("OTTO"); + IstPalindromTest("ABCBA"); + IstPalindromTest("NORBERT"); + + IstPalindromTest("ANN A"); + IstPalindromTest("Anna"); + + + + + } + } +} diff --git a/Prog1_WS2021_22.sln b/Prog1_WS2021_22.sln index e5d0619..034930f 100644 --- a/Prog1_WS2021_22.sln +++ b/Prog1_WS2021_22.sln @@ -61,9 +61,21 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "08 RefVsOut", "08 RefVsOut\ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "08 2D_Felder", "08 2D_Felder\08 2D_Felder.csproj", "{EE89CDF4-D279-4F6D-82E0-26175D60DF5D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "08 2D_Felder_Ubg_Di", "08 2D_Felder_Ubg_Di\08 2D_Felder_Ubg_Di.csproj", "{00DFDFC9-A638-4392-934F-D83ADD9D9530}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "08 2D_Felder_Ubg_Di", "08 2D_Felder_Ubg_Di\08 2D_Felder_Ubg_Di.csproj", "{00DFDFC9-A638-4392-934F-D83ADD9D9530}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "08 ZeichenkettenIntro", "08 ZeichenkettenIntro\08 ZeichenkettenIntro.csproj", "{36213D4C-1100-4634-A883-1BC46FD24298}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "08 ZeichenkettenIntro", "08 ZeichenkettenIntro\08 ZeichenkettenIntro.csproj", "{36213D4C-1100-4634-A883-1BC46FD24298}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "09 Palindrom_Easy", "09 Palindrom_Easy\09 Palindrom_Easy.csproj", "{BD349A0C-121D-4705-8235-027626A20A11}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "09 PalindromFinal", "09 PalindromFinal\09 PalindromFinal.csproj", "{91016469-B34B-42B3-A4B7-7872847C8984}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "09 PalindromFinalTest", "09 PalindromFinalTest\09 PalindromFinalTest.csproj", "{4A14022F-4D0C-40FA-9ED3-46C77CE89308}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "09 CompareTo", "09 CompareTo\09 CompareTo.csproj", "{69FD48D6-46D0-494F-9AE6-54C6280D3C8D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "09 Histogramm", "09 Histogramm\09 Histogramm.csproj", "{9AC7E71B-8FC3-48CC-9963-B18CAC1D4413}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "09 Contains_UebgMo", "09 Contains_UebgMo\09 Contains_UebgMo.csproj", "{560601CF-F420-4B9E-85A4-553236DA123A}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -195,6 +207,30 @@ Global {36213D4C-1100-4634-A883-1BC46FD24298}.Debug|Any CPU.Build.0 = Debug|Any CPU {36213D4C-1100-4634-A883-1BC46FD24298}.Release|Any CPU.ActiveCfg = Release|Any CPU {36213D4C-1100-4634-A883-1BC46FD24298}.Release|Any CPU.Build.0 = Release|Any CPU + {BD349A0C-121D-4705-8235-027626A20A11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BD349A0C-121D-4705-8235-027626A20A11}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BD349A0C-121D-4705-8235-027626A20A11}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BD349A0C-121D-4705-8235-027626A20A11}.Release|Any CPU.Build.0 = Release|Any CPU + {91016469-B34B-42B3-A4B7-7872847C8984}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {91016469-B34B-42B3-A4B7-7872847C8984}.Debug|Any CPU.Build.0 = Debug|Any CPU + {91016469-B34B-42B3-A4B7-7872847C8984}.Release|Any CPU.ActiveCfg = Release|Any CPU + {91016469-B34B-42B3-A4B7-7872847C8984}.Release|Any CPU.Build.0 = Release|Any CPU + {4A14022F-4D0C-40FA-9ED3-46C77CE89308}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4A14022F-4D0C-40FA-9ED3-46C77CE89308}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4A14022F-4D0C-40FA-9ED3-46C77CE89308}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4A14022F-4D0C-40FA-9ED3-46C77CE89308}.Release|Any CPU.Build.0 = Release|Any CPU + {69FD48D6-46D0-494F-9AE6-54C6280D3C8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {69FD48D6-46D0-494F-9AE6-54C6280D3C8D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {69FD48D6-46D0-494F-9AE6-54C6280D3C8D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {69FD48D6-46D0-494F-9AE6-54C6280D3C8D}.Release|Any CPU.Build.0 = Release|Any CPU + {9AC7E71B-8FC3-48CC-9963-B18CAC1D4413}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9AC7E71B-8FC3-48CC-9963-B18CAC1D4413}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9AC7E71B-8FC3-48CC-9963-B18CAC1D4413}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9AC7E71B-8FC3-48CC-9963-B18CAC1D4413}.Release|Any CPU.Build.0 = Release|Any CPU + {560601CF-F420-4B9E-85A4-553236DA123A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {560601CF-F420-4B9E-85A4-553236DA123A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {560601CF-F420-4B9E-85A4-553236DA123A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {560601CF-F420-4B9E-85A4-553236DA123A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE -- GitLab