Schrift
[thread]6642[/thread]

do {} until () anomalie?



<< |< 1 2 >| >> 19 Einträge, 2 Seiten
lichtkind
 2005-01-20 04:04
#50901 #50901
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
hallo gefährten

der code ist selbsterklärend was er tut ist auch zweitrangig,
was mich wundert ist perl (5.8.6) das next nicht akzeptiert weil es behauptet es befinde sich in keiner schleife,

das ist unmöglich weil das programm ansonst wie erwartet läuft.
kann man keine do until schleife mit next skippen?

Code: (dl )
1
2
3
4
5
do {
next if ($answer == wxCANCEL);
pce::edit::restore_positions;
}
until (pce::document::select_next == $first_doc);
\n\n

<!--EDIT|lichtkind|1106214136-->
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
format_c
 2005-01-20 09:55
#50902 #50902
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=lichtkind,20.01.2005, 03:04][/quote]
Quote
der code ist selbsterklärend...

Ähm echt??
Quote
...was mich wundert ist perl (5.8.6) das next nicht akzeptiert weil es behauptet es befinde sich in keiner schleife,...
Ist ja auch richtig.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
C:\Documents and Settings\M01169>perldoc -f do
   do BLOCK
           Not really a function. Returns the value of the last command in
           the sequence of commands indicated by BLOCK. When modified by a
           loop modifier, executes the BLOCK once before testing the loop
           condition. (On other statements the loop modifiers test the
           conditional first.)

           "do BLOCK" does *not* count as a loop, so the loop control
           statements "next", "last", or "redo" cannot be used to leave or
           restart the block. See perlsyn for alternative strategies.
...


Quote
Code: (dl )
1
2
3
4
5
my $first_doc = &pce::document::save_positions;
   $answer = &sniff_selection(0, $sci_frame->GetTextLength);
   &pce::edit::__restore_positions;
}
until (&pce::document::select_next == $first_doc);

Abgesehen davon, dass es stimmt was du sagst, hast du trotzdem den spannensten Teil deines Codes weggelassen :-)

Gruß Alex\n\n

<!--EDIT|format_c|1106207759-->
ronald
 2005-01-20 10:19
#50903 #50903
User since
2003-08-15
76 Artikel
BenutzerIn
[default_avatar]
Ich kann kein next erkennen.
lichtkind
 2005-01-20 11:42
#50904 #50904
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
das forum hat da eine sonderregel es kürzt den code
es war nur jede zweite zeile zu sehen hab es 5mal probiet ob es sich an zeichen oder einem wordt stört aber es hexelt immer den code

do {
next if ($answer == wxCANCEL);
& pce::edit:: save_positions;
//$answer = &sniff_selection(0, $sci_frame->GetTextLength);
&pce::edit::restore_positions;
}
until (&pce::document::select_next == $first_doc);\n\n

<!--EDIT|lichtkind|1106214624-->
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
lichtkind
 2005-01-20 11:51
#50905 #50905
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
jetzt zum 8ten mal und mit 2 tricks(kommentar und leerzeichen) hat er es
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
renee
 2005-01-20 12:00
#50906 #50906
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mach doch einfach ne while-Schleife daraus:
Code: (dl )
1
2
3
4
5
6
7
while(&pce::document::select_next != $first_doc); {      
next if ($answer == wxCANCEL);
& pce::edit:: save_positions;
//$answer = &sniff_selection(0, $sci_frame->GetTextLength);
&pce::edit::restore_positions;
}



mit den normalen [code]-Tags sollte eigentlich nichts verschwinden...
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/
lichtkind
 2005-01-20 12:11
#50907 #50907
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
eben nicht, weil es schon schöner ist wenn der editor im aktuellen dokument beginnt, aber da fällt mir was ein, aber weiss jemand ob perl 6 das beheben will
denn ich halt es für einen bug das die do whole schleife(ach seelige basic tage)
nicht voll als schleife zählt.
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
betterworld
 2005-01-20 12:13
#50908 #50908
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Zur Not kannst Du die Schleife ja mit goto verlassen *duck*
lichtkind
 2005-01-20 12:23
#50909 #50909
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
er möge gehen
ich habe bereits selber daran gedacht und es verworfen,
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
Dubu
 2005-01-20 13:06
#50910 #50910
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
format_c hat leider die interessantere Quelle dazu weggelassen:

[quote=perldoc perlsyn,Statement Modifiers]
[...] Note also that the loop control statements described later will NOT work in this construct, because modifiers don't take loop labels.  Sorry.  You can always put another block inside of it (for "next") or around it (for "last") to do that sort of thing.  For "next", just double the braces:
Code: (dl )
1
2
3
4
           do {{
              next if $x == $y;
              # do something here
          }} until $x++ > $z;

      For "last", you have to be more elaborate:
Code: (dl )
1
2
3
4
5
6
           LOOP: {
                  do {
                      last if $x = $y**2;
                      # do something here
                  } while $x++ <= $z;
          }

[/quote]
<< |< 1 2 >| >> 19 Einträge, 2 Seiten



View all threads created 2005-01-20 04:04.