Position of the text cursor

English main discussion
Post Reply
  • Author
  • Message
Offline
Posts: 282
Joined: Thu Sep 10, 2015 9:53 am
Location: Deutschland

Position of the text cursor

Post by sexy96 »

To pokazuje ilość zaznaczonych linii:
StatusUserFormat=%ls

a na dolnym pasku z lewej strony jest wyświetlane położenie kursora tekstu.
4:1

Jak te dwie informacje wyeksportować (po kliknięciu na ikonę) do pliku B:\info.txt

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

sexy96

Code: Select all

var sFile    = "B:\\info.txt";
var hWndEdit = AkelPad.GetEditWnd();
var nCaretOffset;
var nCaretLine;
var nCharInLine;
var nSelLines;

if (hWndEdit)
{
  nCaretOffset = AkelPad.SendMessage(hWndEdit, 3138 /*AEM_GETRICHOFFSET*/, 5 /*AEGI_CARETCHAR*/, 0);
  nCaretLine   = AkelPad.SendMessage(hWndEdit, 3129 /*AEM_GETLINENUMBER*/, 3 /*AEGL_CARETLINE*/, 0) + 1;
  nCharInLine  = nCaretOffset - AkelPad.SendMessage(hWndEdit, 3138 /*AEM_GETRICHOFFSET*/, 16 /*AEGI_LINEBEGIN*/, nCaretOffset) + 1;
  nSelLines    = AkelPad.SendMessage(hWndEdit, 3129 /*AEM_GETLINENUMBER*/, 2 /*AEGL_LASTSELLINE*/, 0) - AkelPad.SendMessage(hWndEdit, 3129 /*AEM_GETLINENUMBER*/, 1 /*AEGL_FIRSTSELLINE*/, 0) + 1;

  AkelPad.WriteFile(sFile, nCaretLine + ":" + nCharInLine + ":" + nSelLines + "\r\n", -1, 1250 /*nCP*/, 0 /*bBOM*/, 0x2 /*WFF_APPENDFILE*/);
}


Offline
Posts: 282
Joined: Thu Sep 10, 2015 9:53 am
Location: Deutschland

Post by sexy96 »

Świetnie to działa, bardzo dziękuję.

Jeszcze przydałoby się kilka danych w tym skrypcie.

CmdLineBegin=/Call("Scripts::Main", 1, "AkelPadTitle.js", '-t1="%%m %%e - %%F %%v (%%b) %%w"')
%%F pokazuje pełną ścieżkę do edytowanego pliku

1.tą ścieżkę
2.aktualnie używany font, styl, rozmiar
3.D:\AutoHotkey\AutoHotkeyU64.exe D:\WinCMD\AkelPad86\AHKFiles\sort(date).ahk (jak to uruchomić z tego skryptu?)

to mnie dopisuje nowe wartości: APPENDFILE
Czy można to zmienić tak, aby była zapisana tylko ta ostatnia wartość?
przez Write, albo na początku skryptu coś w tym rodzaju: If Exists "B:\\TEMP\\info.txt" Then Delete(Kill) "B:\\TEMP\\info.txt"
*************************************************************
I jeszcze to:
Czy można zrobić tak, aby %%F(pełną ścieżkę do edytowanego pliku) była zapisana
do pliku "B:\\TEMP\\FullPathSRC.txt" przy uruchomieniu AkelPada?

Ja to zrobiłem, przez VBS, ale niestety nie mam tej ścieżki,
gdy uruchomię skojarzony plik tekstowy z AkelPadem,
przez podwójne kliknięcie na tym pliku.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

sexy96

Przeczytaj dokumentację pluginu Scripts: ...\AkelPad\AkelFiles\Docs\Scripts-Eng.txt.
Spróbuj sam to zrobić na bazie skryptu, który podałem. Skrypt może być też napisany w VBS.

Nazwa edytowanego pliku:
var sEditFile = AkelPad.GetEditFile(0);

Żeby tekst w pliku B:\info.txt był nadpisywany, a nie dopisywany na końcu:
AkelPad.WriteFile(sFile, nCaretLine + ":" + nCharInLine + ":" + nSelLines + ":" + sEditFile + "\r\n", -1, 1250 /*nCP*/, 0 /*bBOM*/, 0 /*flags*/);

Uruchomienie innego programu ze stryptu:
AkelPad.Exec('"D:\\AutoHotkey\\AutoHotkeyU64.exe" "D:\\WinCMD\\AkelPad86\\AHKFiles\\sort(date).ahk"');

Offline
Posts: 282
Joined: Thu Sep 10, 2015 9:53 am
Location: Deutschland

Post by sexy96 »

Wielkie dzięki, pobróbuję coś wymodzić.

taki mały problem jeszcze:
Plugins -> Special Characters -> Indent line
bardzo przydatne,
ale czy można je wyłączyć na stałe dla plików None(txt)?

w tym Scripts-Eng znalazłem takie coś
SpellCheck.js-spell check using Microsoft Word.
Czy to znaczy, że można wykorzystać słownik Word'a ?
A ja żeby sprawdzić tekst to wczytuję go do Word'a.

Tam nic więcej o tym nie ma.
Post Reply