C++ Code für Links-Im-Text-Kopieren

Z

Z3Xyyy

Gast
Guten Morgen. :)

Folgenes, ich möcht gern ein kleines Programm schreiben das folgene Funktionen hat:
1. Im großen Textfeld-1 kann jeglicher Text, ob Quellcode oder Inhalte von Beiträgen eingefügt werden können.
- > Per Button soll dann in diesem Textfeld alle Links sprich texte (Abfrage auf) mit http:// *** herausgesucht werden (Natürlich jede art von http/ftp - Link ) im tabellarisch untereinander im Textfeld-2 aufgelistet werden und kopiert werden können.
2. Sofern ein Link mehrmals auftritt sollte dieser aber nur einmal gelistert werden.
3. Natürlich soll sich der ganze Text mithilfe von Scrollbars an der rechten Seite, überblicken lassen.

Beispiel wäre dann so :
(Mal extra farblich markiert)

Eingefügter Text (Textfeld 1)
Code:
<table width="931"  border="0" cellpadding="0" cellspacing="0" class="scroll">
<tr>
	<td width="166"><a href="[COLOR="#ff8c00"]http://news.softpedia.com/[/COLOR]"><img src="[COLOR="#ff8c00"]http://s1.softpedia-static.com/base_img/regular_scroll_l.gif[/COLOR]" width="166" height="19" border="0"></a></td>
	<td align="left" background="[COLOR="#ff8c00"]http://s1.softpedia-static.com/base_img/regular_scroll_bg.gif[/COLOR]" width="729">
		<div id="the_ticker_div" class="ff_scroll" style="width: 600px; color: #F0F0F0;">
		<a id="tickerAnchor" href="#" rel="nofollow" target="_top" style="width: 500px;">&nbsp;</a> [IMG][COLOR="#ff8c00"]http://www.abload.de/img/2.bmpn8h.png[/COLOR][/IMG]
(Kontaktliste)
rechts daneben optional
einstellbare Desktopkontake

[IMG][COLOR="#ff8c00"]http://www.abload.de/img/3.bmpwc2.png[/COLOR][/IMG]
(Nachrichtenfenster)

[IMG][COLOR="#ff8c00"]http://www.abload.de/img/3.bmpwc2.png[/COLOR][/IMG]
(Nachrichtenfenster)

Aso hier noch die SKIN EINSTELLUNGEN:
[SPOILER][IMG][COLOR="#ff8c00"]http://img3.imagebanana.com/img/yvy3ng7x/skin.bmp.png[/COLOR][/IMG][/SPOILER]
[/SPOILER]

Ergebnis Text (Textfeld 2)
Code:
[COLOR="SeaGreen"]http://news.softpedia.com/
http://s1.softpedia-static.com/base_img/regular_scroll_l.gif
http://s1.softpedia-static.com/base_img/regular_scroll_bg.gif
http://www.abload.de/img/2.bmpn8h.png
http://www.abload.de/img/3.bmpwc2.png
http://img3.imagebanana.com/img/yvy3ng7x/skin.bmp.png[/COLOR]

Eigentlich recht simpel..
Doch find ich grad nicht den richtigen Programmiercode dafür.

Mag mir wer helfen ?
Danke im vorraus.



PS: Meine fertige kompilierte exe sollte ohne Runtimes direkt ausführbar sein.
Dazu müsst ich in den Optionen irgenwo was einstellen, wo und was war das nochmal ?
 

NullPointer

Lt. Commander
Dabei seit
Okt. 2009
Beiträge
1.570

calav3ra_de

Lieutenant
Dabei seit
Apr. 2011
Beiträge
968
hast du ein einziges mal in deinem leben einen string geparst?
ich glaub nicht.

den code findest du nicht "vorbereitet für faulpelze wie dich?"?

also ich helf dir so nicht. du hättest ja wenigstens schreiben können, was du bisher versucht hast.


was soll textfeld überhaupt sein? also man kann nur raten, was für eine lösung für dich am besten wäre,
aber wir können ja auch einfach alles posten,richtig?

aber bevor ich das tue, beschimpf ich dich lieber :p
 
1

1668mib

Gast
Aus welchem Grund muss das Ding ohne Runtimes auskommen?
Und welchen Compiler hast du genau? Es gibt nicht nur einen C++-Compiler...

Und dass du den nötigen Quellcode nicht findest liegt daran, dass die Aufgabe von Programmieren oft darin besteht, genau diesen selbst anzufertigen...
 

Yuuri

Fleet Admiral
Dabei seit
Okt. 2010
Beiträge
13.795
Aus dem Gedächtnis, ungetestet:
Code:
#include <string>
using std::string;
#include <vector>
using std::vector;

#define MIN(x,y) x<y?x:y

size_t findFirstOf( const string &Text, const vector<string> &FindData, size_t Offset = 0 )
{
  size_t r = 0;
  for( vector<string>::iterator i = FindData.begin(); i != FindData.end(); i++ )
    r = MIN(r, Text.find( FindData, Offset ));
  return r;
}

vector<string> foo( const string &Text )
{
  vector<string> r, find;
  find.push_back( "http://" );
  find.push_back( "ftp://" );
  find.push_back( "mailto://" );
  
  size_t lastpos = 0, pos, endpos;
  while( (pos = findFirstOf( Text, find, lastpos )) != string::npos ) // link anfang suchen
  {
    endpos = Text.first_find_of( " \"" ); // link ende suchen
    if( endpos != string::npos )
      r.push_back( Text.substr( pos, endpos - pos ) ); // hinzufügen
    lastpos = endpos + 1;
  }
  
  return r;
}
Du suchst erst nach einem Link beginnend mit dem Protokoll-Handler, dann nach dem Ende des Links (hab hier nur mal das Leerzeichen + Anführungsstriche genommen) und falls beides gefunden wurde, wird der Teilstring dem Rückgabevektor hinzugefügt.
 
Z

Z3Xyyy

Gast
Habe das ganze als Windows-Application vor.
Arbeite mit dem DevC++v4.9.9.2 Portable.
GUI erstell ich selbst, brauche nur die Zeilen zum Vergleichen.

Wahrscheinlich habe ich mich falsch ausgedrückt:
Was ich bei Runtimes meinte ist: Das Programm sollte später eine eigenständige Application werden.
Und nicht erst mit Hilfe von irgendwelchen installierten Entwicklungsumgebungen ausführbar sein.
Ahh hab jetzt nachlesen können was ich suche ist: Die einstellung das er die verwendeten Bibliotheken in die exe integriert.

Ich bin nicht wirklich ein Programmierer, eher nen kleiner Scripter..
Lang her das ich mal was mehr aufwendigeres programmierter als eine Batch-datei.
Daher auch den Ausdruck Textfeld, ich arbeitete mithilfe einer "Umgebung".

Nur ich hab noch in Erinnerung, das es in der Schule nur wenige Zeilen waren.
Macht vielleicht mehr Sinn wenn mir Jemand kurz den Synthax anhand eines Beispiels erklärt.
Statt das ich mich jetzt wegen den paar Zeilen wieder komplett über Stunden in die Materie einbarbeite.

Oder ?

PS: Die Sache mit den Strings als Text fand ich schon früher kompliziert...
Da habt ihr als richtige Programmier mehr den Überblick und Wissen. ;)



@Yuuri
Danke, ich versuchs mal mit einzubauen, melde mich danach wieder.


PPS: Ähm... oh nice, seh ich das richtig, der Dev beinhaltet kein "Form"-Editor ??

Jetzt hab ich ein Problem...
 
Zuletzt bearbeitet:
Z

Z3Xyyy

Gast
Nahja, wie erklärt: Ich arbeitete bisher mit Tools die auch eine Ansicht haben.
Das geschriebene als Fenster darstellen zu lassen: Form1 usw.

Ich kenne nur das Borland, was wohl sehr teuer ist.
Selber jetzt auch die Fenstergröße/Buttons usw zu programmieren fänd ich hierbei jetzt nicht angemessen.

Jah ich habe wenig Ahnung von Programmierung.
Aber für 4-5 Zeilen brauch ich jetzt nicht studieren gehen. o.O

Daher nur die Frage was ich nochmal eintragen muss, nachdem ich die "Click-Action" auf habe.
Text in einen String verwandeln, vergleichen, kopieren, Ifs, und "Variblen" auswerten.

Ich will nicht programmieren lernen, sondern eben dieses 200kb Tool erstellen.
Da brauch nur den Synthax mehr nicht. ^^

BZW: Jetzt erstmal ein Tool, was beim Projekt erstellen direkt auch eine Form1 erstellt....
 
Zuletzt bearbeitet:

badday

Commander
Dabei seit
Sep. 2007
Beiträge
3.023
Ich arbeitete bisher mit Tools die auch eine Ansicht haben.
Das geschriebene als Fenster darstellen zu lassen: Form1 usw.

Ich kenne nur das von der Schule das gerüchteweise sehr teuer wäre.
Sieh dir doch (angenommen du arbeitest unter Windows) mal Microsoft Visual C++ bzw. die IDE MS Visual Studio Express an.

Daher nur die Frage was ich nochmal eintragen muss, nachdem ich die "Click-Action" auf habe.
?

Die Genaue Lösung deines Problem solltest du nach etwas Einarbeitung selbst hinbekommen. Hilfreich wird dabei wohl http://www.cplusplus.com/reference/string/string/ sein.

Wie gesagt: Dieses Forum ist für Leute da, die Hilfe beim Programmieren suchen, nicht für Leute, die fertigen Quellcode für ihre Probleme suchen.


Gruß,

badday
 
Z

Z3Xyyy

Gast
So lade mir grad Visual C++ 2010 Express, das soll angeblich dasselbe können.
Zwar Microsoft, aber immerhin kostenlos...

EDIT: Da schrieb ich wohl etwas zu spät. ;)

Ich schaus mir grade an. bzw... -> es läd..
Habe nur bedenken das es kompliziert als ehemaliger wird.
Es aber auch nur ein paar Zeilen sind, und da sich meine Stunden einarbeiten nicht lohnen würde..

Aber ich danke schonmal.


Ich hoffe, ich installier grad auch die richtige Version:
http://www.microsoft.com/germany/express/download/default.aspx
Visual C++ 2010 Express

Wenn ich mir hier so die größen anschaue...
https://www.computerbase.de/downloads/system/visual-studio-2010/

Ist jetzt bereitsc schon seit 10minuten daran und will den ersten Neustart..

*seufs*...
Ergänzung ()

"Fehler beim laden der Komponennten. Setup abgebrochen."

ZACK - Fenster zu... affe tot.. typisch Microsoft... -.-

Kennst noch ein weiteren Builder ?
Ergänzung ()

Acht hat doch alles keinen Zweck.
Fängt super an, da steigt doch direkt dien Motivation.
Schon 2 Stunden umsonst rumgehangen.. -.-

Sind anscheinend alle Tools so Mega-Pakete...
Weiß nun auch nicht welchen ich stattdessen laden soll.

Mag sich denn Jemand ergnädigen und die exe Schicken ?
Ansonsten frag ich halt nochmal in ein anderem Forum nach.

Oder gibts so ein ähnlichen Programm nicht schon irgendwo als Download ?
Will halt nur diese Funktionen haben und kein unnötige extra Tools laden usw.
Aber anscheinend verbindet sich damit mehr Arbeit als es eigentlich ist...

Nahja, danke trotzdem an alle.
 
Zuletzt bearbeitet:
1

1668mib

Gast
Also ich hab ja nen ganz anderes Problem. Und zwar hat mit dem Auto zu tun. Die Zündkerzen scheinen nicht mehr richtig zu gehen. Ich hab ja schon paar mal das Auto angelassen, also hab ich ja wohl genug Ahnung um zu wissen, dass ich das hinbekommen werde. Warum es Menschen gibt, die Jahre lang lernen um Reparaturen am Auto vornehmen zu können ist mir nicht ganz klar, ich kann das. Wenn mir jemand nur sagen würde, welche Zündkerzen ich kaufen muss schon selbst hin.


Also ehrlich gesagt hab ich nur so viel Ahnung von Autos, dass es zum Fahren reicht, ein Kfz-Mechaniker wird vermutlich über den Unsinn, den ich verzapft hab, den Kopf schütteln - Entschuldigung dafür. Was ich sagen will ist, dass es unglaublich ist, mit welcher Naivität du an das Thema rangehst. Und wenn du dann 2 Stunden eventuell sinnlos was gemacht hast, ja dann würde ich sagen dann lass gleich die Finger davon. Aber dann verschwende auch nicht die Zeit anderer, wenn du da schon rumheulst... du willst doch Hilfe.

Und ich kann nur sagen: Zum Glück bist du kein Programmierer, wenn ich mir die Stuktur deiner Postings anschaue ...
 

antred

Lt. Commander
Dabei seit
Juni 2010
Beiträge
1.288
Er kam, um eine maßgeschneiderte Lösung zu finden, er geht als gebrochener Mann ... :p
 
Z

Z3Xyyy

Gast
Ihr versteht es einfach nicht.

Und eure unsachgemäßen kommentare könnt ihr euch auch gerne sparen.
So geht ihr also mit Leuten um die um Hilfe fragen, jah sehr erwachsenes Verhalten.

PS: Ich hab nun nen Kollegen gefragt der das Thema noch besser in Erinnerung hatte.
Für Ihm war es komischerweise kein Problem, eben 2 Minuten Arbeit für insgesamt 13 Zeilen, zu opfern.

Anscheinend seid zumindest ihr 2 einfach total überfordert mit dem Thema. ;)
Und ja ich lerne kein kfz-Beruf, ich bring mein Auto einfach in die Werkstatt...
Denn zum Glück ist 1668mib kein kfz-mechaniker wenn ich mir seinen sinnlosen umkehrschluss ansehe.

Schönen Tag noch. ^^
 
Zuletzt bearbeitet:
1

1668mib

Gast
Wenn du mir jetzt noch sagen könntest wo ich einen Umkehrschluss gemacht habe... Und warum die Eignung einer Person zum Kfz-Mechaniker damit zu tun haben soll, ob er sinnvolle oder sinnlose Umkehrschlüsse machen kann, halte ich für an den Haaren herbeigezogen.

Aber das ist halt das beste, was du machen konntest, es einen "Kollegen" (ka ob du den persönlich kennst oder was auch immer) direkt zu fragen...

mit welchem Compiler hast du es un gemacht, wieviele Runtimes werden denn jetzt eigentlich benötigt?
 

mercsen

Lt. Commander
Dabei seit
Apr. 2010
Beiträge
1.641
Nur so als Tipp: Für sowas kann man auch Basic nehmen oder C, C++ ist doch schnon ein wenig komplizierter ;)

Und lass dich hier nich ärgern, es ist nur so das wirklich verdammt viele leute wollen das man für sie die arbeit macht und das stößt vielen sauer auf, mir mit unter auch.

Und leider muss man auch sagen das du hier ein wenig über die stränge geschlagen hast, denn wenn man etwas entwickeln will sollte man auch wissen was, wie und wo.
Und gerade bei c++ besteht leicht die Gefahr von Buffer Overflows etc.

Aber bleib am Ball
 
Top