#include "util.h"
+#include "unaccent.h"
+
+// RuleBasedTransliterator rules to remove accents from characters
+// so they can be displayed as ASCIIx
+UnicodeString UNACCENT_RULES(
+ "[\\u00C0-\\u00C5] > A;"
+ "[\\u00C8-\\u00CB] > E;"
+ "[\\u00CC-\\u00CF] > I;"
+ "[\\u00E0-\\u00E5] > a;"
+ "[\\u00E8-\\u00EB] > e;"
+ "[\\u00EC-\\u00EF] > i;"
+ );
int main(int argc, char **argv) {
Calendar *cal;
DateFormat *fmt;
DateFormat *defFmt;
+ Transliterator *greek_latin;
+ Transliterator *rbtUnaccent;
+ Transliterator *unaccent;
+ UParseError pError;
UErrorCode status = U_ZERO_ERROR;
Locale greece("el", "GR");
UnicodeString str, str2;
@@ -34,6 +50,24 @@ int main(int argc, char **argv) {
defFmt = DateFormat::createDateInstance(DateFormat::kFull);
defFmt->setCalendar(*cal);
+ // Create a Greek-Latin Transliterator
+ greek_latin = Transliterator::createInstance("Greek-Latin", UTRANS_FORWARD, status);
+ if (greek_latin == 0) {
+ printf("ERROR: Transliterator::createInstance() failed\n");
+ exit(1);
+ }
+
+ // Create a custom Transliterator
+ rbtUnaccent = Transliterator::createFromRules("RBTUnaccent",
+ UNACCENT_RULES,
+ UTRANS_FORWARD,
+ pError,
+ status);
+ check(status, "Transliterator::createFromRules");
+
+ // Create a custom Transliterator
+ unaccent = new UnaccentTransliterator();
+
// Loop over various months
for (int32_t month = Calendar::JANUARY;
month <= Calendar::DECEMBER;
@@ -45,7 +79,7 @@ int main(int argc, char **argv) {
// Format the date in default locale
str.remove();
- defFmt->format((Formattable)cal->getTime(status), str, status);
+ defFmt->format(cal->getTime(status), str, status);
check(status, "DateFormat::format");
printf("Date: ");
uprintf(escape(str));
@@ -53,16 +87,37 @@ int main(int argc, char **argv) {
// Format the date for Greece
str.remove();
- fmt->format((Formattable)cal->getTime(status), str, status);
+ fmt->format(cal->getTime(status), str, status);
check(status, "DateFormat::format");
printf("Greek formatted date: ");
uprintf(escape(str));
+ printf("\n");
+
+ // Transliterate result
+ greek_latin->transliterate(str);
+ printf("Transliterated via Greek-Latin: ");
+ uprintf(escape(str));
+ printf("\n");
+
+ // Transliterate result
+ str2 = str;
+ rbtUnaccent->transliterate(str);
+ printf("Transliterated via RBT unaccent: ");
+ uprintf(escape(str));
+ printf("\n");
+
+ unaccent->transliterate(str2);
+ printf("Transliterated via normalizer unaccent: ");
+ uprintf(escape(str2));
printf("\n\n");
}
// Clean up
delete fmt;
delete cal;
+ delete greek_latin;
+ delete unaccent;
+ delete rbtUnaccent;
printf("Exiting successfully\n");
return 0;
diff --git a/icu4c/source/samples/translit/translit.dsp b/icu4c/source/samples/translit/translit.dsp
index e33d75b2e13..b69f992ca45 100644
--- a/icu4c/source/samples/translit/translit.dsp
+++ b/icu4c/source/samples/translit/translit.dsp
@@ -91,12 +91,20 @@ SOURCE=.\main.cpp
# End Source File
# Begin Source File
+SOURCE=.\unaccent.cpp
+# End Source File
+# Begin Source File
+
SOURCE=.\util.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\unaccent.h
+# End Source File
# End Group
# Begin Group "Resource Files"
diff --git a/icu4c/source/samples/translit/translit.sln b/icu4c/source/samples/translit/translit.sln
new file mode 100644
index 00000000000..b509f1d0e56
--- /dev/null
+++ b/icu4c/source/samples/translit/translit.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "translit", "translit.vcproj", "{D1BEC124-303A-4F44-BA70-55769B8FE96A}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {D1BEC124-303A-4F44-BA70-55769B8FE96A}.Debug.ActiveCfg = Debug|Win32
+ {D1BEC124-303A-4F44-BA70-55769B8FE96A}.Debug.Build.0 = Debug|Win32
+ {D1BEC124-303A-4F44-BA70-55769B8FE96A}.Release.ActiveCfg = Release|Win32
+ {D1BEC124-303A-4F44-BA70-55769B8FE96A}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/icu4c/source/samples/translit/translit.vcproj b/icu4c/source/samples/translit/translit.vcproj
new file mode 100644
index 00000000000..66039be7f43
--- /dev/null
+++ b/icu4c/source/samples/translit/translit.vcproj
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/icu4c/source/samples/translit/unaccent.cpp b/icu4c/source/samples/translit/unaccent.cpp
new file mode 100644
index 00000000000..0191a5adf51
--- /dev/null
+++ b/icu4c/source/samples/translit/unaccent.cpp
@@ -0,0 +1,56 @@
+/********************************************************************
+ * COPYRIGHT:
+ * Copyright (c) 1999-2002, International Business Machines Corporation and
+ * others. All Rights Reserved.
+ ********************************************************************/
+
+#include "unaccent.h"
+
+const char UnaccentTransliterator::fgClassID = 0;
+
+/**
+ * Constructor
+ */
+UnaccentTransliterator::UnaccentTransliterator() :
+ normalizer("", UNORM_NFD),
+ Transliterator("Unaccent", 0) {
+}
+
+/**
+ * Destructor
+ */
+UnaccentTransliterator::~UnaccentTransliterator() {
+}
+
+/**
+ * Remove accents from a character using Normalizer.
+ */
+UChar UnaccentTransliterator::unaccent(UChar c) const {
+ UnicodeString str(c);
+ UErrorCode status = U_ZERO_ERROR;
+ UnaccentTransliterator* t = (UnaccentTransliterator*)this;
+
+ t->normalizer.setText(str, status);
+ if (U_FAILURE(status)) {
+ return c;
+ }
+ return (UChar) t->normalizer.next();
+}
+
+/**
+ * Implement Transliterator API
+ */
+void UnaccentTransliterator::handleTransliterate(Replaceable& text,
+ UTransPosition& index,
+ UBool incremental) const {
+ UnicodeString str("a");
+ while (index.start < index.limit) {
+ UChar c = text.charAt(index.start);
+ UChar d = unaccent(c);
+ if (c != d) {
+ str.setCharAt(0, d);
+ text.handleReplaceBetween(index.start, index.start+1, str);
+ }
+ index.start++;
+ }
+}
diff --git a/icu4c/source/samples/translit/unaccent.h b/icu4c/source/samples/translit/unaccent.h
new file mode 100644
index 00000000000..aba8d9c1851
--- /dev/null
+++ b/icu4c/source/samples/translit/unaccent.h
@@ -0,0 +1,89 @@
+/********************************************************************
+ * COPYRIGHT:
+ * Copyright (c) 1999-2002, International Business Machines Corporation and
+ * others. All Rights Reserved.
+ ********************************************************************/
+
+#include "unicode/translit.h"
+#include "unicode/normlzr.h"
+
+class UnaccentTransliterator : public Transliterator {
+
+ public:
+
+ /**
+ * Constructor
+ */
+ UnaccentTransliterator();
+
+ /**
+ * Destructor
+ */
+ virtual ~UnaccentTransliterator();
+
+ protected:
+
+ /**
+ * Implement Transliterator API
+ */
+ virtual void handleTransliterate(Replaceable& text,
+ UTransPosition& index,
+ UBool incremental) const;
+
+ private:
+
+ /**
+ * Unaccent a single character using normalizer.
+ */
+ UChar unaccent(UChar c) const;
+
+ Normalizer normalizer;
+
+public:
+
+ /**
+ * Return the class ID for this class. This is useful only for
+ * comparing to a return value from getDynamicClassID(). For example:
+ *
+ * . Base* polymorphic_pointer = createPolymorphicObject();
+ * . if (polymorphic_pointer->getDynamicClassID() ==
+ * . Derived::getStaticClassID()) ...
+ *
+ * @return The class ID for all objects of this class.
+ * @stable ICU 2.0
+ */
+ static inline UClassID getStaticClassID(void) { return (UClassID)&fgClassID; };
+
+ /**
+ * Returns a unique class ID polymorphically. This method
+ * is to implement a simple version of RTTI, since not all C++
+ * compilers support genuine RTTI. Polymorphic operator==() and
+ * clone() methods call this method.
+ *
+ * Concrete subclasses of Transliterator that wish clients to
+ * be able to identify them should implement getDynamicClassID()
+ * and also a static method and data member:
+ *
+ *
+ * static UClassID getStaticClassID() { return (UClassID)&fgClassID; }
+ * static char fgClassID;
+ *
+ *
+ * Subclasses that do not implement this method will have a
+ * dynamic class ID of Transliterator::getStatisClassID().
+ *
+ * @return The class ID for this object. All objects of a given
+ * class have the same class ID. Objects of other classes have
+ * different class IDs.
+ * @stable ICU 2.0
+ */
+ virtual UClassID getDynamicClassID(void) const { return getStaticClassID(); };
+
+private:
+
+ /**
+ * Class identifier for subclasses of Transliterator that do not
+ * define their class (anonymous subclasses).
+ */
+ static const char fgClassID;
+};
diff --git a/icu4c/source/samples/uciter8/uciter8.dsw b/icu4c/source/samples/uciter8/uciter8.dsw
index 12032eeac40..4c3fee18071 100644
--- a/icu4c/source/samples/uciter8/uciter8.dsw
+++ b/icu4c/source/samples/uciter8/uciter8.dsw
@@ -3,18 +3,6 @@ Microsoft Developer Studio Workspace File, Format Version 6.00
###############################################################################
-Project: "common"=..\..\common\common.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
Project: "uciter8"=.\uciter8.dsp - Package Owner=<4>
Package=<5>
@@ -23,9 +11,6 @@ Package=<5>
Package=<4>
{{{
- Begin Project Dependency
- Project_Dep_Name common
- End Project Dependency
}}}
###############################################################################
diff --git a/icu4c/source/samples/uciter8/uciter8.sln b/icu4c/source/samples/uciter8/uciter8.sln
new file mode 100644
index 00000000000..0cbfa9c0367
--- /dev/null
+++ b/icu4c/source/samples/uciter8/uciter8.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uciter8", "uciter8.vcproj", "{94379DD9-E6CC-47AC-8E62-0A4ABD8EB121}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {94379DD9-E6CC-47AC-8E62-0A4ABD8EB121}.Debug.ActiveCfg = Debug|Win32
+ {94379DD9-E6CC-47AC-8E62-0A4ABD8EB121}.Debug.Build.0 = Debug|Win32
+ {94379DD9-E6CC-47AC-8E62-0A4ABD8EB121}.Release.ActiveCfg = Release|Win32
+ {94379DD9-E6CC-47AC-8E62-0A4ABD8EB121}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/icu4c/source/samples/uciter8/uciter8.vcproj b/icu4c/source/samples/uciter8/uciter8.vcproj
new file mode 100644
index 00000000000..09899160425
--- /dev/null
+++ b/icu4c/source/samples/uciter8/uciter8.vcproj
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/icu4c/source/samples/ucnv/convsamp.cpp b/icu4c/source/samples/ucnv/convsamp.cpp
index c93888e1b18..1a3dbd02095 100644
--- a/icu4c/source/samples/ucnv/convsamp.cpp
+++ b/icu4c/source/samples/ucnv/convsamp.cpp
@@ -145,7 +145,7 @@ void printBytes(const char *name = "?",
printf("%5s:", "ch");
for( i = 0; i
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/icu4c/source/samples/udata/reader.vcproj b/icu4c/source/samples/udata/reader.vcproj
new file mode 100644
index 00000000000..aff2ec4bc52
--- /dev/null
+++ b/icu4c/source/samples/udata/reader.vcproj
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/icu4c/source/samples/udata/udata.sln b/icu4c/source/samples/udata/udata.sln
new file mode 100644
index 00000000000..6cbfc44e1e7
--- /dev/null
+++ b/icu4c/source/samples/udata/udata.sln
@@ -0,0 +1,27 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "reader", "reader.vcproj", "{BFEFC070-C5A9-42E3-BAAE-A51FB2C4BA28}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "writer", "writer.vcproj", "{40A90302-F173-4629-A003-F571D2D93D16}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {BFEFC070-C5A9-42E3-BAAE-A51FB2C4BA28}.Debug.ActiveCfg = Debug|Win32
+ {BFEFC070-C5A9-42E3-BAAE-A51FB2C4BA28}.Debug.Build.0 = Debug|Win32
+ {BFEFC070-C5A9-42E3-BAAE-A51FB2C4BA28}.Release.ActiveCfg = Release|Win32
+ {BFEFC070-C5A9-42E3-BAAE-A51FB2C4BA28}.Release.Build.0 = Release|Win32
+ {40A90302-F173-4629-A003-F571D2D93D16}.Debug.ActiveCfg = Debug|Win32
+ {40A90302-F173-4629-A003-F571D2D93D16}.Debug.Build.0 = Debug|Win32
+ {40A90302-F173-4629-A003-F571D2D93D16}.Release.ActiveCfg = Release|Win32
+ {40A90302-F173-4629-A003-F571D2D93D16}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/icu4c/source/samples/udata/writer.vcproj b/icu4c/source/samples/udata/writer.vcproj
new file mode 100644
index 00000000000..1c4102852d6
--- /dev/null
+++ b/icu4c/source/samples/udata/writer.vcproj
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/icu4c/source/samples/ufortune/ufortune.sln b/icu4c/source/samples/ufortune/ufortune.sln
new file mode 100644
index 00000000000..b39348c9882
--- /dev/null
+++ b/icu4c/source/samples/ufortune/ufortune.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ufortune", "ufortune.vcproj", "{25F534DF-93C9-4853-A88E-DB7D8CF74042}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {25F534DF-93C9-4853-A88E-DB7D8CF74042}.Debug.ActiveCfg = Debug|Win32
+ {25F534DF-93C9-4853-A88E-DB7D8CF74042}.Debug.Build.0 = Debug|Win32
+ {25F534DF-93C9-4853-A88E-DB7D8CF74042}.Release.ActiveCfg = Release|Win32
+ {25F534DF-93C9-4853-A88E-DB7D8CF74042}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/icu4c/source/samples/ufortune/ufortune.vcproj b/icu4c/source/samples/ufortune/ufortune.vcproj
new file mode 100644
index 00000000000..315a1445eb8
--- /dev/null
+++ b/icu4c/source/samples/ufortune/ufortune.vcproj
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/icu4c/source/samples/ugrep/ugrep.sln b/icu4c/source/samples/ugrep/ugrep.sln
new file mode 100644
index 00000000000..11e6af6b0a0
--- /dev/null
+++ b/icu4c/source/samples/ugrep/ugrep.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ugrep", "ugrep.vcproj", "{E5742DB5-B6E7-4895-825A-CA03FC0A59D0}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {E5742DB5-B6E7-4895-825A-CA03FC0A59D0}.Debug.ActiveCfg = Debug|Win32
+ {E5742DB5-B6E7-4895-825A-CA03FC0A59D0}.Debug.Build.0 = Debug|Win32
+ {E5742DB5-B6E7-4895-825A-CA03FC0A59D0}.Release.ActiveCfg = Release|Win32
+ {E5742DB5-B6E7-4895-825A-CA03FC0A59D0}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/icu4c/source/samples/ugrep/ugrep.vcproj b/icu4c/source/samples/ugrep/ugrep.vcproj
new file mode 100644
index 00000000000..7d84b281ad2
--- /dev/null
+++ b/icu4c/source/samples/ugrep/ugrep.vcproj
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/icu4c/source/samples/uresb/uresb.sln b/icu4c/source/samples/uresb/uresb.sln
new file mode 100644
index 00000000000..f33571d5257
--- /dev/null
+++ b/icu4c/source/samples/uresb/uresb.sln
@@ -0,0 +1,28 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "resources", "resources.vcproj", "{69437707-2FEF-4E2C-8C3F-6E6B3D241366}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uresb", "uresb.vcproj", "{92580BF4-F4DA-4024-B3F8-444F982BC72F}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ {92580BF4-F4DA-4024-B3F8-444F982BC72F}.0 = {69437707-2FEF-4E2C-8C3F-6E6B3D241366}
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {69437707-2FEF-4E2C-8C3F-6E6B3D241366}.Debug.ActiveCfg = Debug|Win32
+ {69437707-2FEF-4E2C-8C3F-6E6B3D241366}.Debug.Build.0 = Debug|Win32
+ {69437707-2FEF-4E2C-8C3F-6E6B3D241366}.Release.ActiveCfg = Release|Win32
+ {69437707-2FEF-4E2C-8C3F-6E6B3D241366}.Release.Build.0 = Release|Win32
+ {92580BF4-F4DA-4024-B3F8-444F982BC72F}.Debug.ActiveCfg = Debug|Win32
+ {92580BF4-F4DA-4024-B3F8-444F982BC72F}.Debug.Build.0 = Debug|Win32
+ {92580BF4-F4DA-4024-B3F8-444F982BC72F}.Release.ActiveCfg = Release|Win32
+ {92580BF4-F4DA-4024-B3F8-444F982BC72F}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/icu4c/source/samples/uresb/uresb.vcproj b/icu4c/source/samples/uresb/uresb.vcproj
new file mode 100644
index 00000000000..809d8be0723
--- /dev/null
+++ b/icu4c/source/samples/uresb/uresb.vcproj
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/icu4c/source/samples/ustring/ustring.sln b/icu4c/source/samples/ustring/ustring.sln
new file mode 100644
index 00000000000..42dad66fc4f
--- /dev/null
+++ b/icu4c/source/samples/ustring/ustring.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ustring", "ustring.vcproj", "{FF92E6C1-BACA-41AD-BB6D-ECA19C05573E}"
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ ConfigName.0 = Debug
+ ConfigName.1 = Release
+ EndGlobalSection
+ GlobalSection(ProjectDependencies) = postSolution
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {FF92E6C1-BACA-41AD-BB6D-ECA19C05573E}.Debug.ActiveCfg = Debug|Win32
+ {FF92E6C1-BACA-41AD-BB6D-ECA19C05573E}.Debug.Build.0 = Debug|Win32
+ {FF92E6C1-BACA-41AD-BB6D-ECA19C05573E}.Release.ActiveCfg = Release|Win32
+ {FF92E6C1-BACA-41AD-BB6D-ECA19C05573E}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/icu4c/source/samples/ustring/ustring.vcproj b/icu4c/source/samples/ustring/ustring.vcproj
new file mode 100644
index 00000000000..c16e7ee783f
--- /dev/null
+++ b/icu4c/source/samples/ustring/ustring.vcproj
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+