Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.

Få apple script att bara skriva en rad

Tråden skapades och har fått 5 svar. Det senaste inlägget skrevs .
1

Hej alla,

jag har hållt på med lite mysql och odbc tillsammans med ett program som heter Powerswitch och har äntligen fått rätt på det jag vill ha. Men jag har en bit kvar.

Ja har ett script som ska ta bort en linje från ett textdokument med data.
problemet är att när mitt "logg script" som skriver i text filen (den skriver namn och status på filer som passerar en mapp som är ett java script) skriver för 3 filer 3 rader i dokumentet och det kan i sin tur mitt odbc script ta hand om.

Så det jag hade velat men inte kan lista ut är hur man antingen får odbc scriptet att läsa alla rader och resnar efter eller bara rad 1 och tar bort den raden efter den har skickat in datan i databasen.

här är mina script:

Java(det som skriver till textfilen i powerswitch):

function jobArrived( s : Switch, job : Job )
{
var namn = job.getNameProper();
var status = job.getJobState();
theLogFilePath = "/Users/nille/logFile.txt";
theLogFile = new File(theLogFilePath);
theLogFile.open(File.Append);
theLogFile.writeLine(job.getNameProper());
theLogFile.writeLine("$" + job.getJobState());	

Applescript (ODBC scriptet):

tell application "PowerSWITCH_Service"
	end tell
	
	set home_Path to path to home folder as Unicode text
	set SQL_import_file to (home_Path & "logFile.txt")
	do shell script ("/usr/local/mysql/bin/mysql -u root -D indata -e \"LOAD DATA INFILE '" & (POSIX path of SQL_import_file) & "' INTO TABLE Sid_log FIELDS TERMINATED BY '$' LINES TERMINATED BY '\\r' (Sida,Status)\"")

Applescript (tar bort text i textdokument på)

set home_Path to path to home folder as Unicode text
tell application "TextEdit"
	open file (home_Path & "logFile.txt")
	tell application "System Events"
		set process "TextEdit"'s frontmost to true
		keystroke "a" using command down 
		key code 51
		keystroke "s" using command down 
		keystroke "w" using command down 
	end tell
	
end tell

tack på förhand

Du kan läsa skriva filer direkt med Applescript och därmed skippa TextEdit som inte har så bra stöd för Applescript.

Öppna ordlistan för något som heter "Standard Additions" och kolla kategorin "File Read/Write".

Du jobbar med den som vanligt genom att använda tell application "StandardAdditions" osv...

Hur gick det med detta?

det gick inte jätte bra,

jag håller på och klura fortfarande men det blir fel i timingen i mina script.

tänk dig att du har text i ett text dokument och du säger att den ska bort mellan varje ODBC import, då är det så att scriptet innan som genererar texten är för snabb.
Det som händer då är att när jag lägger in tex 4 filer i mitt flöde så loggar den alla fyra filer med den texten som jag vill ha så loggas alla fyra filer 4 ggr för att importscriptet körs 4 ggr för att det är 4 filer.
Efter detta så kommer ett nytt script som tar bort innehållet i textfilen (detta sker samtidigt som den första filen har passerat import scriptet) med den följden att importscriptet kör in tomma rader i data basen.

Så jag har en liten bit kvar
Jag ska försöka att göra scripten till ett script i bara apple script, men det är bara det att PowerSwitch som jag använder har en speciell kod till sin "motor" för att flytta filer osv och det är det jag håller på med nu.

Om du byter ordningen? Steg ett i importen är att flytta filerna den hittar till en annan mapp då?

Ett problem med Applescript gentemot Finder är just att mappar mm uppdateras lite för långsamt, speciellt på nätverksenheter. Ibland kan man lösa det med do shell script-kommandot och köra UNIX-kommandon istället.

Nu har jag knäckt det.

jag gjorde så att det kommer en textfil per fil och sen plockar importscriptet bort textfilen.
Så nu flyter allt på som det ska.

Men jag har en fråga.
Hur hade ni visat datan i databasen?
Som det är nu så har jag en php sida som visar datan, men eftersom jag inte årets kod guru och spec så har jag inte lyckats att få den att sortera och filtera. Då började jag kolla på excel för att importera datan. Det funkar jätte bra med PC men jag vill kunna göra detta på mac och då behöver man ju den actual odbc drivern.

Jag har tankat den drivern och testat den men den funkar inte som jag vill det endå sådå tog jag mig ännu mer vatten över huvudet och började med xcode och tänkte att jag kanske kunde göra en applescript studio application och där är jag nu.

ska läggas till att jag har även testat filemaker men det föll på att vi inte hade ngn licens för det.

1
Bevaka tråden