Ich erwarte auch keine 100% Sicherheit. Die Hemmschwelle das Programm einfach weiterzugeben soll einfach gehoben werden. Wenn wir 30% davon abhalten können ist das in Ordnung.
Ich bin kein C# Profi, hab nur kleine Anwendungen geschrieben. ISt das kompliziert die Ressourcen verschlüsselt einzubinden?
/e:
FUnktioniert das überhaupt wie ich es mir vorstelle?
Flashprogramm:
player.swf
data/1.jpg
data/1.xml
etc.
Das C# Programm dient als Player:
start_Flash.exe
ressource1.dat (hier ist das komplette Flashprogramm integriert)
Hallo,
ich hab folgendes Problem: Wir haben eine Flash-Anwendung entwickeln lassen. Dieser greift von einer SWF auf Inhalte wie XML, JPEG oder andere SWFs zu. Die Struktur liegt offen da, jeder könnte also sich die SWFs oder JPEGs einzeln anschauen.
Nun möchten wir die Software per Dongle Schützen: Gibt es eine Möglichkeit das komplette Programm, inklusive aller Einzeldateien wie JPEG,SWF,XML in eine C# Anwendung zu packen? Anschließend würde ich den Code für die Dongle-Aktivierung in die Applikation integrieren.
OK, die erste 0 kann ich ja noch hinzufügen, aber wie die zweite? Muss ich das Ding an der Stelle 3 Splitten und dann wieder joinen?
Hi, also ich habs hinbekommen mit der XML-Methode, ich wüsste nicht genau wie ich mit den Regularexpressions an die Absätze rankommen könnte.
So habe ich es gelöst:
tr = File.OpenText(path);
// setup SgmlReader
Sgml.SgmlReader sgmlReader = new Sgml.SgmlReader();
sgmlReader.DocType = "HTML";
sgmlReader.WhitespaceHandling = WhitespaceHandling.All;
sgmlReader.CaseFolding = Sgml.CaseFolding.ToLower;
sgmlReader.InputStream = tr;
// create document
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.XmlResolver = null;
doc.Load(sgmlReader);
mp3NodeList = doc.DocumentElement.SelectNodes("//body/p/b");
textNodeList = doc.DocumentElement.SelectNodes("//body/table[@width='100%']");
try
{
for (int i = 0; i < mp3NodeList.Count - 1; i++)
{
saveToTextFile(mp3NodeList.Item(i).NextSibling.InnerText, textNodeList.Item(i).InnerText);
}
}
catch
{
}
Jetzt habe ich noch ein klitzekleines Problem. Die Dateinamen des HTML-Dokuments sehen folgendermaßen aus:
3_1_d0c5722c-b6e4-4398-9424-56935a4072e7.mp3
Leider hat sich da ein Fehler eingeschlichen: Es müsste so aussehen:
03_01_d0c5722c-b6e4-4398-9424-56935a4072e7.mp3
GIbt es da eine addChar("0",position(0)) Methode oder sowas?
Hi,
also ich hab jetzt mit Hilfe von folgenden Befehlen die richten Felder ausführen können
lblStatus.Text = doc.DocumentElement.SelectSingleNode("//body/p/b").NextSibling.InnerText;
tBFilesConverted.Text = doc.DocumentElement.SelectSingleNode("//body/table[@width='100%']").InnerText;
Jetzt meine Frage: ICh möchte nun das ganze für alle Knoten machen, und diese dann am besten in einem assoziativen Array speichern. Also der erste Mp3-Knoten soll als Nummer 0 ins Array und passend dazu die erste table mit 100% widht als Nummer 0.
/E: Ich versuch das jetzt mal über die XMLNodelist und dann mit dem Item-Zugriff per Index. Sollte ja funktionieren 😃 Ich werde berichten
Danke für die Idee.Die HTML-Datei startet so
<html><head><title>Speaker text export</title><style>p, body { font-family: Arial } ul { margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px }</style></head><body>
<p> </p>
<h3 align="center"
is also anscheinend nicht XML-Konform. Kann ich sie trotzdem wie eine ganz normale XML-File laden?
Steh da grad echt aufm Schlauch, ist das überhaupt möglich dem zu sagen:
Lauf zeilenweise bis zum ersten auftauchen von "MP3". Dann speichere den Text hinter MP3: in eine Variable und passend dazu den nachfolgenden Text bis zum nächsten MP3.
Besser wäre warscheinlich ein Array
/E: Also ich habs jetzt soweit, dass ich alle mp3-Filenames in einem Array gespeichert habe. Die Anzahl der mp3-Filenamen ist equivalient zu den beschreibungen
Hi miteinander,
ich steh hier vor einer Hürde: Ich hab eine HTML Datei die von einem Programm erstellt wurde. Es handelt sich um eine Auflistung von Sprechertexten mit MP3-Dateinamen und Text.
Leider ist diese nicht wirklich strukturiert, sehet selbst:
<p><u>2.1: Gesetzliche Bestimmungen</u></p>
<p><b>MP3: </b><span style='font-family: Courier'>2_1_7f53f963-9c6f-4704-b332-81c58c5618d4.mp3</span></p>
<table xmlns:linkres="http://xml.apache.org/***" width="100%">
<colgroup>
<col width="70%">
<col width="30%">
</colgroup>
<tr>
<td>TEXT</td><td></td>
</tr>
<tr>
<td></td><td></td>
</tr>
<tr>
<td>TEXT</td><td></td>
</tr>
<tr>
<td></td><td></td>
</tr>
<tr>
<td>TEXT</td><td></td>
</tr>
<tr>
<td>TEXT</td><td></td>
</tr>
<tr>
<td></td><td></td>
</tr>
<tr>
<td>3. TEXT </td><td></td>
</tr>
</table>
<p> </p>
<p><u>2.2: Gesetzliche Bestimmungen</u></p>
<p><b>MP3: </b><span style='font-family: Courier'>2_2_f0457f3a-af43-483b-b76d-681677f9a99a.mp3</span></p>
<table xmlns:linkres="http://xml.apache.org/***er" width="100%">
<colgroup>
<col width="70%">
<col width="30%">
</colgroup>
<tr>
<td>TEXT</td><td></td>
</tr>
<tr>
<td>TEXT</td><td></td>
</tr>
<tr>
<td>TEXT</td><td></td>
</tr>
<tr>
<td>Die<b> EU-Richtlinien</b> </td><td></td>
</tr>
</table>
<p> </p>
Im Reintext sieht das so aus:
1.1: Intro
MP3: 1_1_45eef601-050b-4199-a387-f57e8f0ac473.mp3
TEXT
2.1: Gesetzliche Bestimmungen
MP3: 2_1_7f53f963-9c6f-4704-b332-81c58c5618d4.mp3
TEXT
Ich muss irgendwie an den MP3-Namen rankommen und darauf folgenden Text. Falls das nicht klappt müssen wir wohl nen ChangeRequest an die Entwickler schicken
Vielen Dank schonmal!
Ich war nicht der Kerl dem du ein Beispielprogramm geschickt hast. Aber interessant zu sehen, dass sich ein paar meiner Mitstudenten zu helfen wussten 😉
verwendetes Datenbanksystem: XML
Hallo miteinander,
ich habe hier eine XML-Datei komme aber nicht an den gesuchten Knoten ran.
Ich habs so versucht:
mattext = xmlDoc.DocumentElement.SelectSingleNode("item/material/mattext").InnerText;
Console.WriteLine("XML TYPE = QTI ====" + xmlDoc.DocumentElement.Name);
Aber auch schon mit item/presentation/material/mattext
Ich will an diesen ersten mattext mit dem CDATA Tag rankommen
Vielen Dank!
XML-Code
<?xml version="1.0" encoding="UTF-8"?>
<questestinterop xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2">
<item label="101" ident="1_5_a565b8da-a305-463f-92d2-7d7be201bd24" maxattempts="3" title="Choice page">
<presentation label="Choice-Question">
<material>
<mattext><![CDATA[Which of these countries border Germany?<br>]]></mattext>
<mataudio uri="1_5_a565b8da-a305-463f-92d2-7d7be201bd24_01.mp3"/>
</material>
<response_lid ident="a565b8da-a305-463f-92d2-7d7be201bd24" rtiming="No" rcardinality="Multiple">
<render_choice shuffle="No">
<response_label ident="#1">
<material>
<mattext>France</mattext>
</material>
</response_label>
<response_label ident="#2">
<material>
<mattext>Denmark</mattext>
</material>
</response_label>
<response_label ident="#3">
<material>
<mattext>Poland</mattext>
</material>
</response_label>
<response_label ident="#4">
<material>
<mattext>Czech Republic</mattext>
</material>
</response_label>
<response_label ident="#5">
<material>
<mattext>Austria</mattext>
</material>
</response_label>
<response_label ident="#6">
<material>
<mattext>Switzerland</mattext>
</material>
</response_label>
<response_label ident="#7">
<material>
<mattext>Luxembourg</mattext>
</material>
</response_label>
<response_label ident="#8">
<material>
<mattext>Greece</mattext>
</material>
</response_label>
</render_choice>
</response_lid>
</presentation>
<resprocessing>
<outcomes>
<decvar/>
</outcomes>
<respcondition title="correct">
<conditionvar>
<and>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#1</varequal>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#2</varequal>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#3</varequal>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#4</varequal>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#5</varequal>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#6</varequal>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#7</varequal>
</and>
</conditionvar>
<setvar varname="Score" action="Set">1</setvar>
<displayfeedback feedbacktype="Response" linkrefid="correct"/>
</respcondition>
<respcondition title="Teilweise">
<conditionvar>
<and>
<or>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#1</varequal>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#2</varequal>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#3</varequal>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#4</varequal>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#5</varequal>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#6</varequal>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#7</varequal>
</or>
<not>
<and>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#1</varequal>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#2</varequal>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#3</varequal>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#4</varequal>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#5</varequal>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#6</varequal>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#7</varequal>
<not>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#8</varequal>
</not>
</and>
</not>
</and>
</conditionvar>
<displayfeedback feedbacktype="Response" linkrefid="teilweise"/>
</respcondition>
<respcondition title="wrong">
<conditionvar>
<and>
<not>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#1</varequal>
</not>
<not>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#2</varequal>
</not>
<not>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#3</varequal>
</not>
<not>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#4</varequal>
</not>
<not>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#5</varequal>
</not>
<not>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#6</varequal>
</not>
<not>
<varequal respident="a565b8da-a305-463f-92d2-7d7be201bd24">#7</varequal>
</not>
</and>
</conditionvar>
<displayfeedback feedbacktype="Response" linkrefid="wrong"/>
</respcondition>
</resprocessing>
<itemfeedback ident="correct" view="Candidate">
<material>
<mattext>Correct!</mattext>
</material>
</itemfeedback>
<itemfeedback ident="teilweise" view="Candidate">
<material>
<mattext>Wrong!</mattext>
</material>
</itemfeedback>
<itemfeedback ident="wrong" view="Candidate">
<material>
<mattext>Wrong!</mattext>
</material>
</itemfeedback>
</item>
</questestinterop>
Hallo,
ich bin ein C# Neuling und steh vor einer für mich schweren Aufgabe:
Ich muss einen kleinen Bildeditor bauen. Mir fehlt es aber am Grundverständnis.
Es gibt eine Zeichenfläche in der ein Rechteck, eine Ellipse, Ein Text und ein Bild(per OpenFileDialog) reingeladen werden kann. Man kann mit der linken Maustaste das Element verschieben, mit der Rechten die Größe festlegen.
Dabei blinkt die Umrandung des eingefügten Elements. Man kann es so lange bearbeiten bis man Hinzufügen drückt. Dann ist das Element fixiert.
Man kann das gesamte Bild als BMP speichern.
Ich versteh nicht wie dieses temporäre Zeichnen realisiert wird.
Ich hab so angefangen:
NumericUpDowns für X,Y, Width, Height, eine ListBox für die Elementauswahl, dann ein ColoFontDialog, FontDialog, Txtinputfeld und als Zeichenfläche eine PictureBox(Richtig?)