Schrift
[thread]4933[/thread]

In Text Smilies durch Bilder ersetzen

Leser: 1


<< |< 1 2 3 >| >> 23 Einträge, 3 Seiten
Froschpopo
 2005-04-12 01:17
#43459 #43459
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ich hab nen Textstring:

$string ="text mit einigen :-) Smilies! ;-)";

jetzt wollte ich die Smilies durch Bilder ersetzen. Wie man Bilder einbindet weiss ist mir bereits bekannt.
Was würdet ihr für einen Alogarythmus nehmen um die Smilies aus dem String zu isolieren und anschließend wieder in der originalreihenfolge aneinanderzuhängen?
renee
 2005-04-12 01:27
#43460 #43460
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du kurz sagst, wie man Bilder einbindet, dann wäre es für Tk-unwissende (wie mich) einfacher, Dir zu helfen...

mit s!!! würde es ungefähr so gehen:

Code: (dl )
1
2
3
4
my %hash = (':-)' => 'lachen.gif', ';-)' => 'zwinker.gif');
my $string = 'Dies;-) ist ein Test :-)';

$string =~ s!$_!<img src="./$hash{$_}">!g;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Froschpopo
 2005-04-12 01:35
#43461 #43461
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
genau das funktioniert eben nicht, du kannst nicht einfach Bilder in ein Textlabel einbinden.

siehe perldoc Tk::Label. Du musst dann wenn schon ein Image-Label machen, aber man kann nicht beides in einem tun ! Ist alles nicht so einfach wie mit HTML... Aber darum gehts mir eigentlich garnicht, sondern eher darum wie man am besten die Smilies von Text isoliert und dabei die Reihenfolge einhält.
renee
 2005-04-12 11:12
#43462 #43462
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=Froschpopo,11.04.2005, 23:35]genau das funktioniert eben nicht, du kannst nicht einfach Bilder in ein Textlabel einbinden.[/quote]

Deswegen habe ich Dich ja gefragt wie man das macht... Ich bin eben kein Tk-Freak...

Sowas hilft Dir vielleicht:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
#! /usr/bin/perl

use strict;
use warnings;

my $string = 'Dies;-) ist ein Test :-)';

my @array = split(/([:;]-\))/,$string);

print $_,"\n" for(@array);
\n\n

<!--EDIT|renee|1113290007-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Froschpopo
 2005-04-12 13:46
#43463 #43463
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
danke das sieht schonmal sehr gut aus ! Aber was ist wenn ich 100 Smilies hab?
Kann man nicht irgendwie einen Hash durchsuchen nach smilies ?
renee
 2005-04-12 13:48
#43464 #43464
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du kannst ja ein Array mit allen möglichen Smilies machen und dann per CPAN:Regexp::Assemble die richtige Regexp für split finden!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Froschpopo
 2005-04-12 13:51
#43465 #43465
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ich bräuchte irgendwie sowas wie split(/exists($emotions{(.*)})/,$txt);... sowas in der art..
renee
 2005-04-12 14:10
#43466 #43466
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wie gesagt, dafür kann man CPAN:Regexp::Assemble verwenden:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#! /usr/bin/env perl

use strict;
use warnings;
use lib qw(/homes/frasbio11/reneeb/cpan);
use Regexp::Assemble;

my @smilies = (':-)', ';-', ':-(');
my $ra = Regexp::Assemble->new();

$ra->add('^'.$_.'$') for(@smilies);

print $ra->re,"\n";
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Strat
 2005-04-12 15:47
#43467 #43467
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
kannst du nicht Tk::Text dafuer verwenden? da kann man Tk::Photo's reinhaengen...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Crian
 2005-04-12 15:50
#43468 #43468
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Genau, so mach ich das auch (ersetze auch Textsmilies durch grafische Darstellungen).
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 3 >| >> 23 Einträge, 3 Seiten



View all threads created 2005-04-12 01:17.