home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / Bonus / WSTAR2 / DISK4 / LSTFILES.WM_ / LSTFILES.bin
Encoding:
Text File  |  1994-02-28  |  19.6 KB  |  277 lines

  1. REM Description: Manage 'List Files of Type' entries
  2. REM Filename: lstfiles.wmc
  3. REM Created by: Steve Wylie - 11/08/93
  4.  
  5. DECLARE FUNCTION GetWindowsDirectory LIB "kernel" (lpSysPath AS STRING, nSize As WORD) As WORD
  6.  
  7. CONST Section$ = "FileNames"
  8. CONST IniFile$ = "wsw.ini"
  9. CONST MaxEntries% = 64
  10.  
  11. DIM entries$(MaxEntries%)
  12.  
  13. REM Because we need to get all of the INI file entries in the [FileNames] section,
  14. REM we have to read the WSW.INI file directly, instead of using the GetPrivateProfileString
  15. REM statement.  So we have to get the path to the ini file in order to read it.
  16. size% = w2i(GetWindowsDirectory(winPath$, i2w(150)))
  17. if (right$(winPath$, 1) <> "\") THEN winPath$ = winPath$ + "\"
  18.  
  19. fileName$ = winpath$+IniFile$
  20. sectionName$ = "[" + Section$ + "]"
  21.  
  22. REM Now read the file until we get to the right section.
  23. OPEN fileName$ FOR INPUT AS #1
  24. DO
  25.     LINE INPUT #1, line$
  26. LOOP UNTIL EOF(#1) OR INSTR(line$, sectionName$) > 0
  27.  
  28. IF NOT EOF(#1) THEN
  29.     entry% = 1
  30.     DO
  31.         LINE INPUT #1, tempStr$
  32.         tempStr$ = ltrim$(rtrim$(tempStr$))
  33.         IF (tempStr$ <> "") AND (INSTR(tempStr$, "[") = 0) AND (left$(tempStr$,1) <> ";") AND (right$(tempStr$,1) <> "=") THEN
  34.             entries$(entry%) = tempStr$
  35.             entry% = entry% + 1
  36.         ENDIF
  37.     LOOP UNTIL (INSTR(tempStr$, "[") > 0) OR (EOF(#1)) OR (entry% = MaxEntries%)
  38. ENDIF
  39.  
  40. REM We're done with the file, so we can close it.
  41. CLOSE #1
  42.  
  43. index% = 1
  44.  
  45. BEGIN DIALOG Dialog1 194, 126, "Manage List Files of Type Entries"
  46.     TEXT           4, 4, 140, 16, "Choose an &Entry from the list and then choose an action:"
  47.     LISTBOX        4, 22, 140, 100, entries$, index%
  48.     PUSHBUTTON     150,  4, 40, 14, "&Close", 2
  49.     PUSHBUTTON     150, 20, 40, 14, "&Add New", 3
  50.     PUSHBUTTON     150, 36, 40, 14, "&Modify", 4
  51.     PUSHBUTTON     150, 52, 40, 14, "&Delete", 5
  52. END DIALOG
  53.  
  54. start:
  55.  
  56. IF entry% > 1 THEN
  57.     ret% = Dialog(Dialog1)
  58.     IF ret% = 2 THEN STOP
  59.     IF ret% = 1 THEN ret% = 4    'On double-click, choose Modify
  60. ELSE
  61.     ' If there are no entries, then we have to add a new one.
  62.     ret% = 3
  63. ENDIF
  64.  
  65. ' Define the title for the second dialog
  66. title$ = "Add List Files of Type Entry"
  67. IF ret% = 4 THEN title$ = "Modify List Files of Type Entry"
  68.  
  69. BEGIN DIALOG Dialog2 204, 108, title$
  70.     TEXT           4, 4, 150, 8, "&Entry:"
  71.     TEXTBOX        4, 14, 150, 12, entryText$
  72.     TEXT           4, 28, 150, 8, "Example:  Documents"
  73.     TEXT           4, 42, 150, 8, "&File Specification:"
  74.     TEXTBOX        4, 52, 150, 12, fileSpec$
  75.     TEXT           4, 66, 150, 8, "Example:  *.doc"
  76.     TEXT           4, 80, 150, 24, "You can specify more than one file specification, separated by semicolons.  Example:  *.doc;*.txt"
  77.     OKBUTTON       160, 4, 40, 14
  78.     CANCELBUTTON   160, 20, 40, 14
  79. END DIALOG
  80.  
  81. SELECT CASE ret%
  82.  
  83.     CASE 3
  84.         REM Add new entry
  85.         ret2% = Dialog(Dialog2)
  86.         ' If user presses Cancel and no entries are in the ini file, then just stop.
  87.         IF ret2% = 2 AND entry% = 1 THEN STOP
  88.         IF ret2% = 1 AND entryText$ <> "" THEN
  89.             REM Create the new entry in the ini file
  90.             WritePrivateProfileString Section$, entryText$, fileSpec$, IniFile$
  91.             REM And add it to the listbox
  92.             entries$(entry%) = entryText$ + "=" + fileSpec$
  93.             index% = entry%
  94.             entry% = entry% + 1
  95.         ENDIF
  96.         entryText$ = ""
  97.         fileSpec$ = ""
  98.         
  99.     CASE 4
  100.         REM Modify selected entry
  101.         tempStr$ = entries$(index%)
  102.         equal% = INSTR(tempStr$, "=")
  103.         entryText$ = left$(tempStr$, equal%-1) 
  104.         oldEntry$ = entryText$
  105.         fileSpec$ = mid$(tempstr$, equal%+1, len(tempStr$))
  106.         ret2% = Dialog(Dialog2)
  107.         if ret2% = 1 AND entryText$ <> "" THEN
  108.             REM Remove the old entry, in case the entry name was changed.
  109.             WritePrivateProfileString Section$, oldEntry$, chr$(0), IniFile$
  110.             WritePrivateProfileString Section$, entryText$, fileSpec$, IniFile$
  111.             entries$(index%) = entryText$ + "=" + fileSpec$
  112.         ENDIF
  113.         entryText$ = ""
  114.         fileSpec$ = ""
  115.  
  116.     CASE 5
  117.         REM Delete selected entry
  118.         title$ = "Delete Entry"
  119.         tempStr$ = entries$(index%)
  120.         equal% = INSTR(tempStr$, "=")
  121.         entryText$ = left$(tempStr$, equal%-1) 
  122.         fileSpec$ = mid$(tempstr$, equal%+1, len(tempStr$))
  123.         ret% = MessageBox(entryText$ + chr$(13) + chr$(13) + "Are you sure you want to delete this entry?", "Delete Entry?", 33)
  124.         IF ret% = 1 THEN
  125.             REM Remove the deleted entry
  126.             IF entryText$ <> "" THEN
  127.                 WritePrivateProfileString Section$, entryText$, chr$(0), IniFile$
  128.             ENDIF
  129.  
  130.             REM Remove the deleted entry from the listbox also, and shuffle the other entries up.
  131.             FOR i% = index% to (MaxEntries% - 1)
  132.                 entries$(index%) = entries$(index%+1)
  133.             NEXT i%
  134.             entries$(MaxEntries%) = ""
  135.             REM Decrease the number of entries
  136.             entry% = entry% - 1
  137.         ENDIF
  138.  
  139. END SELECT
  140.  
  141. GoTo start
  142. 
  143. *****  WARNING *****
  144. This is a WSWin macro file.
  145. Subsequent data is binary information and should not be modified.
  146. # MF # 1.0None762570472d    ö    D2T9
  147. 8    ëè
  148. 8        ïî
  149. 1Å@
  150. 8    òö
  151. ôòûù
  152. àÆûÿ
  153. æÿÉÖ
  154. 8$¥Ç ¢Æ¥₧ƒ á₧£âáíâ
  155. 8$"óÆ£    Æó
  156. 8"ñÆï    úñ
  157. 8"¿ªë"⌐¿º    Ñ⌐
  158. 8#úÇ
  159. 8%Ǽ
  160. 8$Ç¡
  161. .«Ç¼Ñ»«â¡»¬â
  162. 8$Ç▒â▒▓â
  163. 8│Ç
  164. 8 %Ç╢
  165. 8 !
  166. ╕╢╣║
  167. ╖╣╗╝    ╢╗
  168. 8!!| ┬╢╛├┬
  169. .─Ç╢ª
  170. ┼─╞┼╟├╞╚Ç ┐╢╚╔╩ ╦╔└╠╦═╟╠╬Ç ¢╢╬╧╨ ╤╧┴╥╤â═╥╙â
  171. 8!|#2│@0╘Å    ╘╢
  172. 8#$││Ç
  173. 8$&
  174. .╒Ç╢ª╓╒╫╓$Ç╪┘╪┌╫┘
  175. █│ì▄█â┌▄┤â
  176. 8&*&Ç
  177. 8*,݀
  178. 3▐▀αß4 ΓΓπΣσ4ΓµπτÅ▌4öΓΦΘΩδ4ö∞ΦΘφε4ö∩ΦΘ≡Γ4ö±ΦΘ≥≤
  179. 8,55
  180. 858â│Ç÷â
  181. 88:6≈▐
  182. 8::
  183. â≈δ∙â
  184. 8:;
  185. 8;;
  186. â≈Ç√â
  187. 8;<≈Γ⌡
  188. 8<?≈ε
  189. 8?C    ⁿ²
  190. 8CC
  191. â≈Γ â
  192. 8CD    ⁿ
  193. 3ⁿ4 ΓΓö4ΓΘö4 Γö    4 Γ
  194. ö 4Γ±ö 4 Γö4 Γö 4ΓΦΘ 4    ∞ΦΘ
  195. 8DP5
  196. 8PR≈
  197. 8RT
  198. âεâ
  199. 8TV6
  200. 8VW&
  201. δ
  202. │Çââ
  203. 8W&X
  204. 8XX,
  205. Ç ╛ââ
  206. 8X,[ ë ï!"
  207. 8[]2│@0#Å"$┴"%$     #%
  208. 8]^▌│
  209. 8^_││Ç
  210. 8_a    ╛
  211. 8ab     ╛
  212. 8bd
  213. âΓ&â'
  214. 8df2▌@0(Å    ╢(
  215. 8fg
  216. .)Ç╢┴
  217. 8gh*)Ç ┐╢*+,    +
  218. 8hi    -
  219. 8ij0)Ç
  220. .╢12
  221. -/╢01     /
  222. 8jk6
  223. 8kk,
  224. 4Ç 5╛â456â
  225. 8k,n8
  226. 789: ë-9ï;<
  227. 8no ë ï=>
  228. 8op2▌@0?Å"@┴"A@     ?A
  229. 8pr    ╛
  230. 8rs     ╛
  231. 8su
  232. â≤BâC
  233. 8uw    ⁿD
  234. 8wx2▌@0EÅ    ╢E
  235. 8xy
  236. .)Ç╢┴
  237. 8yzF)Ç ┐╢FGH    G
  238. 8z{J)Ç
  239. .╢KL
  240. -I╢JK     I
  241. 8{|RN
  242. 7RST"USVN
  243. 7VWX"YUW"ZYO[P\QMZ[\≈]
  244. 8||
  245. â≈Ç_â
  246. 8|~! â╛aâ
  247. 8~!Çb
  248. 7bcd ëcïef
  249. 8ÇäkìÇhkg▌iggÇâghmâ
  250. 8äà2▌@0nÅp▌Ç2p@0oÅ    no
  251. 8àål
  252. 8åç2ì@0qÅ    q╛
  253. 8çë││Ç
  254. 8ëÄ⌠t~|ssssssssssssssssssss.G .G .G  .G -.G 5.G ;.G A.G N.G ^.G     l.G
  255. z.G ê.G û.G ñ.G ▓.G ╢.G ╣.G ╜.G └.G ┬.G ─.G ╞.G ╔.G ╠.G ╧.G ╥.G ╘.G ╓.G ┌.G ▄.G ▐.G α.G  Γ.G !Σ.G "Θ.G #∞.G $≡.G %⌡.G &ⁿ.G '/G (
  256. /G )/G */G +/G ,"/G -(/G .-/G /3/G 06/G 1;/G 2@/G 3B/G 4E/G 5J/G 6N/G 7T/G 8Y/G 9`/G :g/G ;l/G <o/G =w/G >y/G ?{/G @/G Aê/G Bî/G CÅ/G Dù/G E₧/G Fú/G G¡/G H┤/G I╣/G J╜/G K┬/G L╟/G M═/G N╤/G O╒/G P▄/G Qπ/G RΩ/G S≡/G T≈/G U0G V0G W0G X$0G Y10G Z:0G [G0G \P0G ]X0G ^`0G _h0G `q0G av0G b{0G cÇ0G dç0G eÄ0G fö0G g¢0G h¥0G ió0G j¿0G k«0G l╡0G m╛0G n╟0G o╦0G p╙0G q╫0G r▄0G sΓ0G tΦ0G uε0G v⌠0G w∙0G x■0G y1G z1G {1G |1G }W_  W_+W_+    W_W_W_  W_ W_àBå4W_=W_GW_MW_
  257.           VW_+      bW_
  258.           kW_+      uW_    +P  @üW_+  @äW_
  259.           @ìW_          ôW_çùW_
  260.           áW_àñW_+  û¿W_  ¡W_  ▓W_     ╖W_  ╝W_     ┴W_  ó╞W_
  261. ë═W_+      ╤W_  ╓W_      █W_     αW_  µW_  óδW_      ±W_
  262.           √W_      W_
  263.           W_+      W_+      W_      W_      "W_  ∞'W_  0,W_
  264.           2W_  8W_  >W_  DW_  ªIW_  OW_  ªTW_          [W_  ^`W_  ªeW_
  265.           nW_
  266. ë uW_
  267. ë
  268. |W_      éW_     êW_      ÄW_     öW_  RÖW_+      £W_
  269. ë*óW_+      ªW_+      ¬W_  ░W_  ╢W_  ╝W_  ┬W_  ╚W_  ╬W_  ╘W_      ┌W_     αW_  µW_  ∞W_  ≥W_  °W_      ■W_     W_  
  270. W_  W_  RW_      ÅW_  "W_  (W_  .W_  4W_  :W_  @W_  FW_  LW_          SW_      [W_+  ┬_W_+  ~cW_+      çW_+  ëW_+  îìW_+  ÉW_+      ╠W_+  ╧W_+  d╙W_+  (╓W_+  ┘W_+      ΓW_+  ΣW_+  τW_+      ≥W_+  ⌠W_+  $≈W_+      W_+  4W_+      W_+  W_86W_  └W_  ░"W_          'W_  ä-W_  ä3W_  ¼9W_  ¼?W_
  271.           FW_+      eW_  °kW_  °qW_+      ôW_      ¢W_+  ╠ƒW_+  lúW_+  ÑW_+      »W_+   ▓W_
  272.           ╜W_+  └W_+      ╓W_+  *┘W_+      ≡W_
  273.           ·W_+  B²W_+      W_+  PW_+  W_+      yW_+  á}W_  âW_  8    ëW_  ┤ÅW_  ╕òW_          ¢W_  °íW_  ºW_  ¡W_  °│W_  è╣W_  ┐W_  ┼W_  è╦W_ç9σW_  δW_     ±W_      Å≈W_      ²W_      W_  ╩    W_  4W_      ÅW_          W_  "W_      (W_     .W_
  274.           8W_ç-<W_      BW_  HW_  NW_     TW_  ZW_  `W_  fW_  lW_
  275. ë7qW_  wW_      }W_     âW_  ëW_     ÅW_  òW_     ¢W_      ÅíW_      ºW_      ¡W_  F│W_  8    ╣W_+      ╚W_      Å╬W_  ╘W_      ┌W_     αW_      µW_  ∞W_  ≥W_     °W_ç3W_+  W_+      4W_+      DW_+  !GW_  MW_      SW_     YW_      _W_  eW_      kW_     qW_      wW_      }W_      âW_  ëW_     ÅW_  8    òW_  8    ¢W_  ÄíW_  ĺW_  ¡W_      ┤W_     ╗W_  ┬W_     ╔W_          ╠W_  ╤W_  ╕╫W_  ╞▌W_  ΣW_  ░ΩW_      ≡W_      Å≈W_      Å■W_  W_      Å W_W_????01CANCELERRORNUM[T1]
  276. GETWINDOWSDIRECTORY"kernel"LPSYSPATHNSIZESECTION$"FileNames"INIFILE$"wsw.ini"MAXENTRIES%64ENTRIES$SIZE%W2IWINPATH$I2W150[T2][T3][T4][T5][T6][L1]RIGHT$"\"[T7][T8][T9][T10][L2][T11]FILENAME$[T12]SECTIONNAME$"[""]"[T13][T14][L3][L4]LINE$[T15][T16][T17][L5][T18][L6]ENTRY%[L7][L8]TEMPSTR$LTRIM$RTRIM$[T19][T20][T21][T22][L9]""LEFT$";""="[T23][T24][T25][T26][T27][T28][T29][T30][T31][T32][T33][T34][T35][T36][T37][T38][T39][L10][T40][T41][T42][T43][T44][T45][T46][T47][T48]INDEX%DIALOG1194126"Manage List Files of Type Entries"414016"Choose an &Entry from the list and then choose an action:"221004014"&Close"220"&Add New"336"&Modify"52"&Delete"5START[L11][L12]RET%[L13][L14][L15][L16]TITLE$"Add List Files of Type Entry"[L17][L18]"Modify List Files of Type Entry"DIALOG22041088"&Entry:"12ENTRYTEXT$28"Example:  Documents"42"&File Specification:"FILESPEC$66"Example:  *.doc"8024"You can specify more than one file specification, separated by semicolons.  Example:  *.doc;*.txt"160[T49][L19][L20][L21]RET2%[L22][T50][T51][L23][L24][T52][T53][L25]WRITEPRIVATEPROFILESTRING[T54][T55][T56][T57][T58][L26][L27][T59]EQUAL%[T60][T61][T62]OLDENTRY$LEN[T63][T64][T65][T66][L28][T67][T68][L29]CHR$[T69][T70][T71][T72][T73][T74][T75][T76][T77][T78][L30][L31]"Delete Entry"[T79][T80][T81][T82][T83][T84][T85][T86]MESSAGEBOX13"Are you sure you want to delete this entry?""Delete Entry?"33[T87][T88][T89][T90][T91][T92][T93][T94][T95][T96][T97][T98][L32][L33][L34][L35][T99][T100][T101][T102][T103]I%[F1][L36][L37][T104][L38][L39][T105][T106][T107][T108]
  277.