Frusst: Finde die richtige Schleife nicht^^

Anfängerfragen zum Programmieren mit PureBasic.
Slut-Hunter
Beiträge: 40
Registriert: 05.06.2006 12:38

Frusst: Finde die richtige Schleife nicht^^

Beitrag von Slut-Hunter »

Mist ich hock da jetzt schon seit gestern Abend dran, aber irgendie finde ich kein Ausweg aus Beispiel 1.

Geht um ein html thumbail generator, hab mal aufs wesentlichste runtergestutzt.

Das Ding erledigt seinen Job so weit, und stürzt natürlich nach dem Letzten File ab, weil use Image kein input mehr kriegt.

Code: Alles auswählen

If OpenWindow(0,0,0,840,600,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered,"BlaBla ")
  
  UseJPEGImageEncoder()
  UseJPEGImageDecoder()
  
  CreateGadgetList(WindowID(0))
   StringGadget(1,140,40,40,20,"333",#PB_String_Numeric)
   ListViewGadget(2, 10, 130, 400, 300) 
   ButtonGadget(3,10,80,100,40,"Jaja mach mal scheiß Ding",#PB_Button_MultiLine)
   TextGadget(10,10,20,180,40,"Breite in Pixel")

  Repeat
    
    EventID = WaitWindowEvent()
    
    If EventID = #PB_Event_Gadget
      
      If EventGadgetID()=3
        
        New_W = Val(GetGadgetText(1))
        
        Tomate$ = OpenFileRequester("Select Pictures", "C:\*.jpg", "Pictures | *.jpg", 0,#PB_Requester_MultiSelection) 
        
        Path$ = GetPathPart(Tomate$)
        CreateDirectory(Path$+"Thumbs")
        
        While Tomate$
          Debug Tomate$ 
          
          Tomate$ = NextSelectedFileName()
          
          Pfad$ = GetPathPart(Tomate$)
          Datei$ = GetFilePart(Tomate$)
          
          LoadImage(200, Pfad$+Datei$)
          UseImage(200)
          
          w.f = ImageWidth()
          H.f = ImageHeight()
          
          New_H.f = H.f / w.f * New_W
          
          CopyImage(200, 201)
          ResizeImage(201, New_W, New_H.f )
          SaveImage(201, Pfad$+"\Thumbs\"+Datei$, #PB_ImagePlugin_JPEG, 7)
        Wend
      EndIf
      EndIf
      
Until EventID = #PB_Event_CloseWindow
    
EndIf
  
End

Und so, krieg ichs gar nicht hin, weiss einfach nicht wie ich das machen soll, daß der
die geaddeten Dateinamen vom ListViewGadget bearbeitet.

Code: Alles auswählen

If OpenWindow(0,0,0,800,600,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered,"BlaBla ")
  
  UseJPEGImageEncoder()
  UseJPEGImageDecoder()
  
  CreateGadgetList(WindowID(0))
  
  ButtonGadget(1,10,10,100,20,"Files Auswählen")
  ButtonGadget(2,200,10,100,20,"Start")
  
  StringGadget(3,120,10,40,20,"200",#PB_String_Numeric)
  
  ListViewGadget(4, 10, 70, 400, 300) 
  
  Repeat
    
    EventID = WaitWindowEvent()
    
    If EventID = #PB_Event_Gadget
      
      If EventGadgetID()=1
        Tomate$ = OpenFileRequester("Select Pictures", "C:\*.jpg", "Pictures | *.jpg", 0,#PB_Requester_MultiSelection) 
        
        ZeFix$ = GetPathPart(Tomate$)
        CreateDirectory(ZeFix$+"Thumbs")
      
        While Tomate$
          Debug Tomate$ 
          
          Tomate$ = NextSelectedFileName() 
           Pfad$ = GetPathPart(Tomate$)
          
          DateiName$ = GetFilePart(Tomate$)
           AddGadgetItem(4, -1, Pfad$+DateiName$, ImageID)
        Wend
      EndIf
      
      
      If EventGadgetID()=2
        
        New_W = Val(GetGadgetText(3))
        
        For i = 0 To CountGadgetItems(4)
          BLA$ = GetGadgetItemText(4, i, 0)
          LoadImage(150, BLA$)
          UseImage(150)
          w.f = ImageWidth()
          H.f = ImageHeight()
          New_H.f = H.f / W_1 * New_W
          CopyImage(150, 160)
          ResizeImage(160, New_W, New_H.f )
          SaveImage(160, Pfad$+"\Thumbs\", #PB_ImagePlugin_JPEG, 8)
        Next
      EndIf
      
    EndIf
    
    
    
  Until EventID = #PB_Event_CloseWindow
  
EndIf
 
End

Und das ist noch nicht mal das schlimmste, daß kommt noch.

Ich hab keine Ahnung wie ich das hinkriegen soll, daß nicht einfach nur nach & die html Strings geaddet werden sollen(das ist kein Prob) sondern es abhängig von Anzahl der Bilder, und der anzahl an Gewählten Bildern pro Reihe ist.

So muss es sein, wenn es z.B 3 Bilder pro Reihe sind, erst werden 3 Thumbnals definiert dann 3 Bilder, dann wieder 3 Thumbnails für die Nächste Reihe dann wieder 3 Bilder. :(

Code: Alles auswählen

<div align="center">Seite 1 von 1</div><br>
<table align="center" width="" cellpadding="" border="" bordercolor="#000000" cellspacing="">


<tr>
<td class="thumbcell" align="center" valign="middle"><a href="s243-001.jpg" target="_self"><img border="" src="Thumbnails/tn_000.jpg" width="300" height="197" alt="">  </a></td>
<td class="thumbcell" align="center" valign="middle"><a href="s243-002.jpg" target="_self"><img border="" src="Thumbnails/tn_001.jpg" width="300" height="457" alt="">  </a></td>
<td class="thumbcell" align="center" valign="middle"><a href="s243-003.jpg" target="_self"><img border="" src="Thumbnails/tn_002.jpg" width="300" height="457" alt="">  </a></td>
</tr>


<tr>
<td class=descrcell align=center valign=top> <table class=descrtable width=51 cellpadding=0 cellspacing=0 border=0><td nowrap class=descrinfocell align=center valign=top><font face=Verdana, sans-serif size=1>Name:&nbsp;<b>s243-001.jpg</b><br></font></td></tr></table></td>
<td class=descrcell align=center valign=top> <table class=descrtable width=51 cellpadding=0 cellspacing=0 border=0><td nowrap class=descrinfocell align=center valign=top><font face=Verdana, sans-serif size=1>Name:&nbsp;<b>s243-002.jpg</b><br></font></td></tr></table></td>
<td class=descrcell align=center valign=top> <table class=descrtable width=51 cellpadding=0 cellspacing=0 border=0><td nowrap class=descrinfocell align=center valign=top><font face=Verdana, sans-serif size=1>Name:&nbsp;<b>s243-003.jpg</b><br></font></td></tr></table></td>
</tr>


Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

Beitrag von Karl »

[klugscheiss=on]Tja, das ist das Problem mit Quick and Dirty.[klugscheiss = off]

Ein Blick in die Hilfe führt manchmal zu erstaunlichen Erkenntnissen:
Ist der zurückgegebene 'Dateiname$' leer (""), dann gibt es keine weitere ausgewählte Datei.
Kein Wunder, dass das Programm crasht.

Deine Statusabfrage von angehängten Dateien im Listview kannst du mit einer LL oder einem Array durchführen.

Deine Html-Datei erstellst du mit gewöhnlichen WriteStringN(...)-Mitteln.

Gruß Karl

(der keine vollständigen Programmtexte liefert)
Slut-Hunter
Beiträge: 40
Registriert: 05.06.2006 12:38

Beitrag von Slut-Hunter »

Zu quick & dirty, wenn ich schreibe das ich da schon seit gestern Abend rumache dann mein ich das auch so, hab zig mal i die Hilfe geschaut, nur hat es mir nichts gebracht.

Array, bisher keine Ahnung was das ist, und unter LL kann ich mir auch nichts vorstellen, es gab in meiner Jugend ne Tussi deren Spitzname LL (Lechhauser Loch) wahr, aber das wird es kaum sein^^.

Wie auch immer, trtozdem sach ich mal Danke,.
cofter
Beiträge: 84
Registriert: 10.03.2006 19:07
Wohnort: Berlin
Kontaktdaten:

Beitrag von cofter »

Ich tippe mal auf LL = LinkedList :mrgreen:
Was ich nicht kenne das mach ich kaputt! :D
----------------------------------------------------
Purebasic v4.0
Slut-Hunter
Beiträge: 40
Registriert: 05.06.2006 12:38

Beitrag von Slut-Hunter »

Ah danke das ist es :lol:
Hab schon die ganze Zeit überlegt was das noch heißen könnte :)
Antworten