Folker •---->
  
  
  Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
  | 
		
			
				 Verfasst am: 02.10.2003 - 15:12    Titel: Zeitstempel als Datei- bzw. Ordnername | 
				     | 
			 
			
				
  | 
			 
			
				Das Problem ereilt jeden mal: Man braucht eindeutige Ordner- oder Dateinamen bzw. möchte in einem Script viele Ordner / Dateien anlegen lassen ohne wg. evtl. vorhandener Dateien gestört zu werden (error) und ohne irgendwelche Abfragen ob der Name schon vergeben ist. Es bietet sich der Zeitstempel an. Dieses Beispiel kann je Sekunde einen einmaligen Namen generieren. Da muss halt jeder für sich prüfen, ob das reicht oder ob sein Script mehr Dateien/Ordner je Sekunde anlegen muss. Dann ist das hier nicht so geeignet und muss ausgebaut werden. Die Uhrzeit wird der Einfachheit halber als Sekundenzahl ausgegeben.
 
 
Dank OS X sind lange Dateinamen möglich, OS 9 Anhänger werden die Länge des neuen Namens prüfen müssen!
 
 
--------Scriptanfang
 
 
property theMonthList : {mJanuary:1, mFebruary:2, mMarch:3, mApril:¬
 
	4, mMay:5, mJune:6, mJuly:7, mAugust:8, mSeptember:¬
 
	9, mOctober:10, mNovember:11, mDecember:12}
 
 
set temp to "SehrlangerNameundnochlängeralsgedachtundnochlängerundlänger"
 
set theFold to choose folder with prompt "Bitte Zielordner auswählen:"
 
 
set theNewName to (gib_Zeitstempel(current date) & "_" & temp)
 
 
--Ordner erzeugen:
 
tell application "Finder" to make new folder at theFold with properties {name:theNewName as string}
 
set theFold to the result as string
 
 
--Datei erzeugen:
 
schreibeData((theFold & theNewName & ".txt"), "Testtext")
 
 
on schreibeData(theP, theText)
 
	try
 
		set theF to open for access file theP with write permission
 
		set eof of theF to 0
 
		write theText to theF
 
		close access theF
 
	on error
 
		try
 
			close access theF
 
		on error
 
			close access file theP
 
		end try
 
	end try
 
end schreibeData
 
 
on gib_Zeitstempel(theDate)
 
	return ((((year of theDate) as string) & "_" & (Get_Obj(my theMonthList, "m" & month of theDate)) as string) & "_" & (day of theDate) as string) & "_" & ((time of theDate) as string)
 
end gib_Zeitstempel
 
 
 
-- ----------------------------------------------
 
-- get property from script or record (by R23) siehe auch: (http://homepage.mac.com/richard23/)
 
-- ----------------------------------------------
 
on Get_Obj(theObj, theProp)
 
	tell (run script "me
 
on f(theObj)
 
    return theObj's " & theProp & "
 
end f") to return f(theObj)
 
end Get_Obj
 
 
----------Scriptende _________________ Gruß,
 
Folker Brandt
 
=============================
 
Systemberatung · Datenbanken · Webdesign | 
			 
		  |